명예의 전당
[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/138477
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[문제 풀이]
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 |