문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/138477

제한 사항

입출력 예

풀이
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public int[] solution(int k, int[] score) {
int[] answer = new int[score.length];
ArrayList<Integer> kList = new ArrayList<>();
for (int i = 0; i < score.length; i++) {
kList.add(score[i]);
int min = Collections.min(kList);
if (i >= k) {
if (score[i] > min) kList.remove(kList.indexOf(min));
else kList.remove(kList.indexOf(score[i]));
}
answer[i] = Collections.min(kList);
}
return answer;
}
}
후기
처음에 어떤 방식으로 풀지 고민하다가 여러 시도를 거친 후 ArrayList로 풀긴했는데 다른 사람 풀이를 보니 PriorityQueue라는 것이 있었다. 자바의 정석을 찾아보니 아직 공부하지 않은 부분에 있었다. 어째 문제를 풀면 풀수록 모르는게 쏟아져 나온다. 그래도 어디까지나 한계가 있을테니 웬만한 것들은 익혀둘 수 있도록 꾸준히 해야겠다. 문제 자체는 그리 어렵지 않았다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 1] 푸드 파이트 대회 (0) | 2023.07.03 |
|---|---|
| [프로그래머스][JAVA][Lv. 1] 과일 장수 (0) | 2023.07.02 |
| [프로그래머스][JAVA][Lv. 1] 달리기 경주 (0) | 2023.07.01 |
| [프로그래머스][JAVA][Lv. 1] 문자열 나누기 (0) | 2023.06.30 |
| [프로그래머스][JAVA][Lv. 1] 가장 가까운 글자 (0) | 2023.06.30 |