문자열로 구성된 리스트를 받아, 각 문자열의 n번째 인덱스를 기준으로 오름차순 하기
예시)
풀이
- sortedWith(compareBy)를 사용하여 다중기준을 두고 오름차순 정렬
제출 코드
(코드 해석해 보기)
sortedWith()에서 comparator를 활용하여 첫 번째는 인덱스[n]번째를 기준으로,
그다음 기준은 [제한 조건]에 있는 n번째 인덱스가 같은 문자열일 경우, 사전순으로 배치시킨다
.toTypedArray()로 string타입을 Array타입으로 변형시켜 준다
sortedBy()
selector를 지정하여 기준을 정할 수 있다
-> ??.sortedBy{ it.first }
내림차순으로 사용하고 싶을 땐 sortedByDescending()
-> ??.sortedByDescending{ it.first }
sortedWith()
comparator를 사용하여 다중 기준을 둘 수 있다
sortedBy는 하나의 기준을 둘 수 있지만, sortedWith()는 compareBy를 이용해서 여러 개의 기준을 둘 수 있다
-> ??.sortedWith(compareBy( { it.first }, { it.second } ))
sortedBy와는 다르게
내림차순으로 사용하려면 뒤에 .reversed()를 붙여줘야 한다
-> ??.sortedWith(compareBy( { it.first }, { it.second } )).reversed()
- -ed가 들어간 정렬 메소드는 Immutable, mutable 리스트에 모두 사용할 수 있으며, 메소드가 적용된 새로운 리스트를 리턴한다
- -ed가 붙지않은 정렬 메소드(sort, sortBy, sortWiith..)는 Mutable 리스트에 사용할 수 있으며, 메소드를 자기 자신에게 적용시킨다
Immutable 리스트는 원본을 변경하지 않고 정렬된 리스트를 새로 리턴한다 / (원본 따로, 리턴값 따로)
( reversed() -> immutable 리스트에 사용되며, 역순으로 변경된 리스트를 생성하고 리턴한다 )
mutalble 리스트는 원본을 수정하여 리턴한다 / (원본 -> 변경된 수정값)
( reverse() -> mutable 리스트에 사용되며, 리스트 자신의 element 순서를 반대로 변경한다 )
'코틀린(Kotlin) > 프로그래머스' 카테고리의 다른 글
[프로그래머스/코틀린(Kotlin)] 두 개 뽑아서 더하기 (1) | 2023.11.27 |
---|---|
[프로그래머스/코틀린(Kotlin)] K번째 수 (0) | 2023.11.24 |
[프로그래머스/코틀린(Kotlin)] 숫자 문자열과 영단어 (0) | 2023.11.22 |
[프로그래머스/코틀린(Kotlin)] 시저 암호 (1) | 2023.11.21 |
[프로그래머스/코틀린(Kotlin)] 최소직사각형 (0) | 2023.11.20 |