명예의 전당(1) (자바)

김재현·2023년 11월 22일
0

알고리즘 풀이

목록 보기
23/89
post-thumbnail
post-custom-banner

문제

정답코드

import java.util.*;

class Solution {
    public int[] solution(int k, int[] score) {
        int[] answer = new int[score.length];

        List<Integer> array = new ArrayList<>();

        for (int i=0;i< score.length;i++) {
            array.add(score[i]);
            Collections.sort(array);
            if(array.size()>k) {
                array.remove(0);
            }
            answer[i]=array.get(0);
        }
        
        return answer;
    }
}

값을 담아줄 list를 선언 한뒤, 거기에 for문으로 score[i]를 하나씩 추가한다.

array의 크기가 k를 넘어가면 가장 작은 수를 삭제한다.

그 뒤 가장 작은 수를 answer[i]에 넣어준다.

다른 사람 코드

다른 분들은

  • answer[i] = Collections.min(rank);
    가장 작은 수를 리턴하는 함수 사용
  • PriorityQueue priorityQueue = new PriorityQueue<>();
    --> peek
    일반적인 큐의 구조 FIFO(First In First Out)를 가지면서, 데이터가 들어온 순서대로 데이터가 나가는 것이 아닌 우선순위를 먼저 결정하고 그 우선순위가 높은 데이터가 먼저 나가는 자료구조

역시 풀이 방법은 많다.
Queue는 생각 못했는데, 이번 기회에 볼 수 있었다.

profile
I live in Seoul, Korea, Handsome
post-custom-banner

0개의 댓글