🗒 문제
📝 나의 문제풀이
class Solution {
fun solution(names: Array<String>): Array<String> {
return names.toList().chunked(5).map{it.first()}.toTypedArray()
}
}
📝 다른 사람의 문제 풀이
class Solution {
fun solution(names: Array<String>): Array<String> {
return names.toList().chunked(5) { it[0] }.toTypedArray()
}
}
🖊 문제 풀이 시 알면 좋을 것
- chunked 메소드
- 설명: 컬렉션을 일정 크기로 나누는 메소드.
- 반환 타입: List<List<T>>
val groups = listOf(1, 2, 3, 4, 5, 6, 7).chunked(5)
println(groups) // [[1, 2, 3, 4, 5], [6, 7]]
- chunked + 람다
- 설명: chunked는 람다를 받아 각 그룹을 변환하는 작업도 지원.
- 반환 타입: List<R> (람다 결과의 리스트)
val firstElements = listOf(1, 2, 3, 4, 5, 6, 7).chunked(5) { it.first() }
println(firstElements) // [1, 6]
- first() 메소드
- 설명: 리스트의 첫 번째 요소를 반환.
- 반환 타입: 리스트의 요소 타입.
val first = listOf(1, 2, 3).first()
println(first) // 1
- toTypedArray
- 설명: List<T>를 Array<T>로 변환.
val array = listOf(1, 2, 3).toTypedArray()
println(array.contentToString()) // [1, 2, 3]
두 풀이의 차이
- 나의 풀이:
- **chunked**로 그룹을 나누고, **map { it.first() }**로 각 그룹의 첫 번째 사람 선택.
names.toList().chunked(5).map { it.first() }.toTypedArray()
- 다른 사람의 풀이:
- **chunked**에 람다를 사용해 그룹 나누기와 첫 번째 사람 선택을 동시에 수행
names.toList().chunked(5) { it[0] }.toTypedArray()
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 수열과 구간 쿼리 1 (0) | 2025.01.17 |
---|---|
[프로그래머스] n보다 커질 때까지 더하기 (0) | 2025.01.17 |
[프로그래머스] 할 일 목록 (0) | 2025.01.17 |
[프로그래머스] 홀수 vs 짝수 (0) | 2025.01.17 |
[프로그래머스] n 번째 원소까지 (0) | 2025.01.16 |