코딩테스트
[프로그래머스] 문자열 묶기
liz_devel
2025. 2. 3. 17:25
🗒 문제
📝 나의 문제풀이
class Solution {
fun solution(strArr: Array<String>): Int {
return strArr.groupBy{ it.length }.values.map{ it.size }.maxOrNull()?:0
}
}
📝 다른 사람의 문제 풀이
다른 사람의 문제 풀이는 좋아요 수가 높거나 많은 사람들이 푼 방법 기준으로 첨부하였습니다.
class Solution {
fun solution(strArr: Array<String>) = strArr.groupBy(String::length).values.maxOf(List<String>::size)
}
🖊 문제 풀이 시 알면 좋을 것
groupBy
- 리스트 또는 배열의 요소들을 특정 기준(Key)으로 그룹화하여 Map을 생성하는 함수.
- Key → 그룹을 구분하는 기준 (예: 문자열 길이, 첫 글자 등)
- Value → 해당 Key에 속하는 요소들의 리스트
val grouped = list.groupBy { 기준 }
문자열 길이별 그룹화
val words = listOf("a", "bc", "d", "efg", "hi")
val grouped = words.groupBy { it.length }
println(grouped)
출력 결과
{1=[a, d], 2=[bc, hi], 3=[efg]}
maxOf()
- 컬렉션(List, Set 등)에서 특정 기준의 최댓값을 찾는 함수.
- 반환 타입: maxOf()는 람다에서 반환하는 값의 타입을 그대로 반환함
val numbers = listOf(3, 7, 2, 9, 5)
val maxNum: Int = numbers.maxOf { it }
println(maxNum) // 9
반응형