본문 바로가기

Programmers

[JAVA] Lv.1 명예의 전당 (1)

https://school.programmers.co.kr/learn/courses/30/lessons/138477

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제

매일 새로운 점수가 발표될 때마다 자리가 k개인 명예의 전당에 점수들이 내림차순으로 정렬되어 발표됩니다

발표된 명예의 전당의 최하 점수를 배열 형태로 반환하는 문제입니다

 

 

 

풀이

1. score을 리스트에 추가하여 내림차순 정렬

2. 리스트의 마지막 값을 배열에 저장

3. 리스트의 크기가 k를 넘을 경우 리스트의 기존 마지막 값(명예의 전당에서 밀려난 점수)을 삭제 한 후에 다시 마지막 값을 찾아 배열에 저장

 

import java.util.*;

class Solution {
    public int[] solution(int k, int[] score) {
        List<Integer> list = new ArrayList<>();
        int[] gol = new int[score.length];
        
        for(int i=0; i<score.length; i++) {
            list.add(score[i]);
            Collections.sort(list, Collections.reverseOrder());
            if (list.size() > k) list.remove(list.size()-1);
            gol[i] = list.get(list.size() - 1);
        }
        return gol;
    }
}

'Programmers' 카테고리의 다른 글

[JAVA] Lv.1 약수의 개수와 덧셈  (2) 2024.04.06
[JAVA] Lv.1 추억 점수  (0) 2024.04.03
[JAVA] Lv.1 문자열 내 마음대로 정렬하기  (0) 2024.04.01
[JAVA] Lv.1 [1차] 비밀지도  (0) 2024.03.31
[JAVA] Lv.1 콜라 문제  (0) 2024.03.31