728x90
반응형
이번 문제는 지나가다 정답률이 낮은 문제를 발견해 풀어보았다.
이전과는 다르게 두 가지 방식으로 문제를 풀어보았는데
여러 자료형을 오가면서 풀어볼 수 있어서 나름 좋은 문제였다고 생각한다.
문제
풀이 1. map -> list 변환
가장 처음 생각한 방식이다.
rank배열의 값과 인덱스가 모두 필요한 상황이었기 때문에 list만으로는 풀 수가 없다는 판단을 내렸다.
그래서 key, value로 저장할 수 있는 map을 선택했다.
이 때, rank배열의 각 값으로 key를 해당 index로 value를 지정했다.
그래야 참석 여부에 따라 map에 저장한 key로 정렬할 수 있기 때문이다.
정렬 이후에는 다시 리스트로 변환하여 가장 앞에서부터 3개의 값을 꺼내 값을 만들어 리턴해주었다.
풀이 2. list로 풀기 그런데 Pair를 곁들인
먼저 Pair가 무엇인지 물어보면 사실 나도 구구절절 설명하지 못한다.
다만 이름 그대로 한 쌍의 값을 가질 수 있는 클래스이다.
여기서 나는 <Int, Int> 와 같은 제네릭으로 Pair 클래스를 사용했다.
map을 사용할 때와는 달리 sortBy 함수를 사용해 map의 키 값을 정렬하듯 첫번째 원소로 정렬을 해주었다.
그리고 마지막은 동일하게 앞에서 3개를 꺼내 값을 만들어 리턴해주었다.
실행 결과
이번 문제에서 재밌는 실행 결과가 나왔다.
바로 map을 사용해서 푼 방식이 실행 속도에서 거의 2배 차이가 난다는 점이었다.
신기하게 map이 더 빠른 속도를 보여주었다.
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[PCCP 기출문제] 1번 / 동영상 재생기 코틀린(Kotlin) (0) | 2024.11.13 |
---|---|
배열 조각하기 코틀린(Kotlin) (0) | 2024.11.12 |
왼쪽 오른쪽 코틀린(Kotlin) (1) | 2024.11.09 |
[PCCE 기출문제] 7번 / 버스 자바(Java) (0) | 2024.11.07 |
바탕화면 정리 코틀린(Kotlin) (0) | 2024.10.31 |