문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
class Solution { fun solution(strings: Array<String>, n: Int): Array<String> { var answer = arrayOf<String>() var stringList2D : MutableList<Pair<Char, String>> = mutableListOf() //단어와 문자쌍 저장 strings.forEach { stringList2D.add(Pair(it[n], it)) } //두 번째 열 기준, 사전순으로 먼저 정렬 stringList2D.sortWith(compareBy { it.second }) //n으로부터 뽑아온 첫 번째 열을 기준으로 정렬 stringList2D.sortWith(compareBy { it.first }) //string에 해당하는 데이터만 answer에 저장 answer += stringList2D.map { it.second }.toTypedArray() return answer } }
class Solution { fun solution(strings: Array<String>, n: Int): Array<String> { var answer = strings var list = answer.sortedWith(compareBy({ it[n] }, { it })) return list.toTypedArray() } }
[TIL-240305]