명예의 전당
[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/138477
[문제 풀이]
List를 사용하여 문제를 해결했다. 기본적으로 List에 값이 추가될 때마다 정렬을 진행해 준다.
List에 들어 있는 요소의 개수가 k개 보다 작다면 계속 List에 score 값을 추가해 준다.
List에 들어 있는 요소의 개수가 k개 이상일 경우 List의 첫 번째 값과 점수를 비교해서 List에 추가 여부를 결정한다.
최종적으로 반환되는 배열에는 항상 List의 첫 번째 값을 넣어준다.
[코드]
import java.util.*;
class Solution {
public int[] solution(int k, int[] score) {
int[] answer = new int[score.length];
List<Integer> list = new ArrayList<>();
for(int i = 0; i < score.length; i++) {
if(i < k) {
list.add(score[i]);
} else {
if(score[i] > list.get(0)) {
list.remove(0);
list.add(score[i]);
}
}
Collections.sort(list);
answer[i] = list.get(0);
}
return answer;
}
}
2023.08.03
'프로그래머스' 카테고리의 다른 글
[코딩테스트 연습] n ^ 2 배열 자르기 - Lv.2 (0) | 2023.10.11 |
---|---|
[코딩테스트 연습] 다음 큰 숫자 - Lv.2 (0) | 2023.09.26 |
[코딩테스트 연습] 다음에 올 숫자 - Lv.0 (0) | 2023.06.12 |
[코딩테스트 연습] 무작위로 K개의 수 뽑기 - Lv.0 (0) | 2023.06.05 |
[코딩테스트 연습] 세 개의 구분자 - Lv.0 (0) | 2023.06.02 |