문제를 처음 접근할 때 n번째 인덱스의 문자열을 가져와서 순서대로 정렬하는 것까지는 쉬웠지만 그 문자열을 포함한 단어를 가져와서 다시 정렬하는 과정에서 조금 막혔다.
class Solution {
fun solution(strings: Array<String>, n: Int): Array<String> {
var answer = Array(strings.size) {" "}
var midVal = Array(strings.size) {" "}
for(i in strings.indices) {
midVal[i] = strings[i][n].toString()
}
val sort = midVal.indices.sortedWith(compareBy({midVal[it]}, {strings[it]}))
for (i in sort.indices) {
val idx = sort[i]
answer[i] = strings[idx]
}
return answer
}
}
ㄴ> midval에 strings의 n번째 문자열을 담는다. 여기서 사용된 sortedWith()는 정렬하는 방식과 정렬하는 대상을 지정할 수 있기 때문에 매우 유용하다.
idx로 해당 인덱스 요소를 가져와 단어 순서대로 다시 출력할 수 있게 구현했다.
class Solution {
fun solution(strings: Array<String>, n: Int): Array<String> {
return strings.also {
it.sort()
it.sortBy { it[n] }
}
}
}
ㄴ> 이건 다른 사람 풀이... 볼 때마다 다들 엄청 단순하게 구현하는 것 같다. 저기에 쓰인 also도 뭔지 알아보도록 하자
'Kotlin 문법 및 연습 문제' 카테고리의 다른 글
(Kotlin) - 프로그래머스 푸드 파이터 대회 (2) | 2024.03.28 |
---|---|
(Kotlin) - 이상한 문자 만들기 (0) | 2024.03.15 |
Kotlin - object를 이용한 싱글톤 객체 생성 (0) | 2024.03.13 |
Kotlin - 비동기 프로그래밍 (쓰레드, 코루틴) (2) | 2024.03.12 |
(Kotlin) 나누어 떨어지는 숫자 (0) | 2024.03.07 |