문제 생각해보기
- 각 배열의 원소의 N 번째 인덱스를 기준으로 정렬하면 될거같은데?
풀이 코드
class Solution {
fun solution(strings: Array<String>, n: Int): Array<String> {
var answer = arrayOf<String>()
answer = strings.also {
it.sort()
it.sortBy{it[n]}
}
return answer
}
}
생각대로 N번째 인덱스를 기준으로 정렬만 하면 되는 간단한 문제였지만 생각보다 시간이 오래 걸렸다. 그 이유는...
이 제한조건을 보지 못하고 풀고 있었기 때문이다.. ㅜㅜ
제한조건을 꼭 제대로 보자는 교훈을 주는 문제였다. ㅎㅎ
이 문제를 풀면서 스코프 함수인 also와 정렬할 때 사용하는 sort()와 sorted()의 차이에 대해서 한번 알아보았다.
스코프 함수는 블로그에 추후에 정리할 예정이다. 오늘은 also에 대해서 간단하게 알아보자면
also - 객체의 프로퍼티를 사용하지 않거나 변경하지 않고 사용하는 경우 유용하다.
- 'it'을 통해서 스코프 내에서 객체에 접근이 가능하다.
- 생성된 인스턴스를 반환한다. (객체 자신?)
sort()와 sorted()의 차이
- sort()는 list 클래스의 메소드로 list객체에서만 사용할 수 있다. ex) list.sort()
실행 시, 기본적으로 오름차순으로 list를 정렬하며 반환값은 없다. - sorted() 메소드는 iterable 객체를 파라미터로 받으며, 대표적인 iterable에는 list,string,set 등이 있다. ex) sorted(list)
실행 시, 기본적으로 오름차순으로 객체를 정렬하고, 정렬된 iterable를 반환한다.
'Algorithm' 카테고리의 다른 글
[알고리즘] 정렬에 대하여.. (0) | 2023.12.14 |
---|---|
[프로그래머스] 명예의 전당 (1) - Kotlin (0) | 2023.12.12 |
[프로그래머스] 숫자 문자열과 영단어 - Kotlin (1) | 2023.12.06 |
[프로그래머스] 최소 직사각형 - Kotlin (2) | 2023.12.05 |
[프로그래머스] 자릿수 더하기 - Kotlin (0) | 2023.11.27 |