(코딩테스트) 문자열 내 마음대로 정렬하기 (sortedWith)

2024. 3. 29. 18:09개발자 과정/Kotlin

https://school.programmers.co.kr/learn/courses/30/lessons/12915

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이의 선택과정

1. 정렬문제인데, 조금 꼬아져 있는 문제다. 

2. 정렬기준을 따로 설정해 주어야 하는데, 코틀린에 이게 없을리가 없다.

 

정답풀이

class Solution {
    fun solution(strings: Array<String>, n: Int)=
        strings.sortedWith(compareBy({it[n]},{it}))
}

 

핵심로직

strings.sortedWith(compareBy({it[n]},{it}))

= 복합 조건 정렬을 통해 문제를 쉽게 풀어내었다. 

 

새로 알게된 것

sortedWith, sortedBy

= 정렬에 조건을 걸때엔 sortedBy를 쓰고, 복합조건을 걸때엔 sortedWith를 쓴다.

그리고 sortedWith를 쓸때엔 sortedWith(compareBy({ },{ }))의 폼으로 

compareBy를 통해 원하는 조건을 람다식으로 걸어줘야 한다고 한다.