728x90
조건
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.(strings는 길이 1 이상, 50이하인 배열입니다, strings의 원소는 소문자 알파벳으로 이루어져 있습니다, strings의 원소는 길이 1 이상, 100이하인 문자열입니다, 모든 strings의 원소의 길이는 n보다 큽니다, 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.)
알고리즘 예상
- sorted를 이용해 사전순으로 배치한다.
- sortedBy를 이용해 n번째 문자의 오름차순으로 정렬한다
초기 코드
class Solution {
fun solution(strings: Array<String>, n: Int): Array<String> {
var answer = arrayOf<String>()
return answer
}
}
내 코드
class Solution {
fun solution(strings: Array<String>, n: Int): Array<String> {
var answer = arrayOf<String>()
answer = strings.sorted().sortedBy { it[n] }.toTypedArray()
return answer
}
}
코드블럭을 없엘 수 있어 없엤다.
class Solution {
fun solution(strings: Array<String>, n: Int): Array<String> = strings.sorted().sortedBy { it[n] }.toTypedArray()
}
다른 사람의 풀이
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()
}
}
개선점 또는 배운점
- sortedWith를 이용해 it[n]과 it을 동시에 비교했다.
728x90
'TIL > 알고리즘' 카테고리의 다른 글
| 02/15 알고리즘 공부(49) - 두 개 뽑아서 더하기 (1) | 2024.02.15 |
|---|---|
| 02/15 알고리즘 공부(48) - K번째 (0) | 2024.02.15 |
| 02/14 알고리즘 공부(46) - 숫자 문자열과 영단어 (0) | 2024.02.14 |
| 02/14 알고리즘 공부(45) - 시저 암호 (1) | 2024.02.14 |
| 02/14 알고리즘 공부(44) - 최소 직사각형 (0) | 2024.02.14 |