https://school.programmers.co.kr/learn/courses/30/lessons/138477
문제 접근
배열보단 값 저장, 변경에 ArrayList가 나을 거 같아서 사용
ㅡ score.length 길이 만큼 돌아가는 반복문
ㅡ 명예의 전당이 꽉 차기 전까진(명전 사이즈 < k) 점수를 바로 명전에다가 저장
★★ Collections.sort() → List 오름차순 정렬 해주는 메서드
ㅡ 오름차순 정렬되면 0번 인덱스가 제일 작은 값 → answer에 저장
ㅡ 명전이 꽉 차면 ( else ) 0번 인덱스가 현재 점수보다 작을 경우 값만 변경해주고 다시 정렬 → 정렬 후 0번 인덱스에 최저값
import java.util.*;
public int[] solution(int k, int[] score) {
int[] answer = new int[score.length];
ArrayList<Integer> hallFame = new ArrayList<>();
for(int i=0; i<score.length; i++) {
if(hallFame.size() < k) {
hallFame.add(score[i]);
Collections.sort(hallFame); // 오름차순 정리하면 0번 인덱스가 제일 작은 수
answer[i] = hallFame.get(0);
}
else {
if(hallFame.get(0) < score[i]) {
hallFame.set(0, score[i]);
Collections.sort(hallFame);
}
answer[i] = hallFame.get(0);
}
}
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / 햄버거 만들기 / JAVA] (0) | 2023.01.24 |
---|---|
[프로그래머스 / 과일 장수 / JAVA] (0) | 2023.01.18 |
[프로그래머스 / 문자열 나누기 / JAVA ] (0) | 2023.01.12 |
[프로그래머스 / 가장 가까운 같은 글자 / JAVA ] (0) | 2023.01.09 |
[프로그래머스 / 크기가 작은 부분 문자열 / JAVA ] (0) | 2023.01.08 |
댓글