728x90
반응형
SMALL
오랜만에 코딩테스트를 시작하고 가장 오래 걸린 문제...
각 리스트를 정렬하고 k 번째의 값을 뽑아내면 되는 문제인데,
맨 처음 문제를 읽을 때 머릿속으로 정리가 되지 않아서 식을 생각해내지 못했다.
그리구 ArrayList를 사용해야하는 문제인데 일반 배열을 사용해서 문제를 푸려고 했다가
괜히 더 빙글빙글 돌았다...
다른 사람들의 답을 보니 다양한 답들이 많았는데
대부분 ArrayList()에 값을 넣은 뒤 정렬을 하고 k 값과 비교해서 list.remove(0) 하는 방식을 많이 사용하더라...
배열에 대해 다양한 방법을 고민할 수 있는 문제였다
정답
import java.util.*;
import java.util.Arrays;
class Solution {
public int[] solution(int k, int[] score) {
List<Integer> list = new ArrayList<>();
int[] answer = new int[score.length];
for (int i = 0; i < score.length; i++) {
list.add(score[i]);
Collections.sort(list);
if (list.size() <= k) {
answer[i] = list.get(0);
} else {
answer[i] = list.get(list.size()-k);
}
}
return answer;
}
}
출처
프로그래머스 - https://school.programmers.co.kr/learn/courses/30/lessons/138477
728x90
반응형
LIST
'코딩 테스트' 카테고리의 다른 글
프로그래머스) 기사단원의 무기 Lv1 (2) | 2024.02.05 |
---|---|
프로그래머스) 대충 만든 자판 Lv1 (2) | 2024.02.04 |
프로그래머스) 카드 뭉치 Lv1 (0) | 2024.02.04 |
프로그래머스) 추억 점수 Lv1 (0) | 2024.02.03 |
Java에서 length, length(), size()의 차이점! (0) | 2024.02.02 |