[프로그래머스, Java] 명예의 전당 (1)

2025. 7. 15. 19:51·CodingTest/Programmers

사진을 클릭하면 해당 문제로 이동

❌풀이

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Solution {
    public int[] solution(int k, int[] score) {
        // list를 만들어서 값을 계속 집어넣는다
        // index 개수가 k 보다 작다면 그냥 집어넣고 정렬 -> 마지막 숫자 result에 저장
        // index 개수가 k 보다 크거나 같다면 정렬 -> 마지막 숫자 자르기 -> k번째 숫자 result에 저장

        List<Integer> list = new ArrayList<>();
        List<Integer> answer = new ArrayList<>();

        for (int i = 0; i < k; i++) {
            list.add(score[i]);
            Collections.sort(list);
            answer.add(list.get(0));
        }

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

        return answer.stream().mapToInt(Integer::intValue).toArray();
    }
}

특정 케이스에서 런타임 에러 발생
score  배열의 길이가  k 보다 작을 때  배열 범위를 벗어나지 않도록 보호하여 해결함

💡풀이 2

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Solution {
    public int[] solution(int k, int[] score) {
        List<Integer> list = new ArrayList<>();  // 명예의 전당
        List<Integer> answer = new ArrayList<>();      // 매일 발표할 최하위 점수

        for (int dailyScore : score) {
            list.add(dailyScore);  // 새로운 점수 추가

            // 오름차순 정렬
            Collections.sort(list);

            // 명예의 전당이 k개를 초과하면 가장 낮은 점수 제거
            if (list.size() > k) {
                list.remove(0);
            }

            // 현재 명예의 전당의 최하위 점수 추가
            answer.add(list.get(0));
        }

        return answer.stream().mapToInt(Integer::intValue).toArray();
    }
}

 

GitHub - okjunghyeon/Programmers_CodingTest: 프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다.

프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다. Contribute to okjunghyeon/Programmers_CodingTest development by creating an account on GitHub.

github.com

'CodingTest > Programmers' 카테고리의 다른 글

[프로그래머스, Java] 비밀지도  (1) 2025.07.15
[프로그래머스, Java] 카드 뭉치  (0) 2025.07.15
[프로그래머스, Java] 문자열 내 마음대로 정렬하기  (0) 2025.07.15
[프로그래머스, Java] 콜라 문제  (0) 2025.07.15
[프로그래머스, Java] K번째수  (0) 2025.07.15
'CodingTest/Programmers' 카테고리의 다른 글
  • [프로그래머스, Java] 비밀지도
  • [프로그래머스, Java] 카드 뭉치
  • [프로그래머스, Java] 문자열 내 마음대로 정렬하기
  • [프로그래머스, Java] 콜라 문제
devoks
devoks
꾸준히 작성해보자!
  • devoks
    ok's 개발 블로그
    devoks
  • 전체
    오늘
    어제
    • 분류 전체보기 (112) N
      • Backend (15)
        • SpringBoot (0)
        • Java (15)
      • Cs (18) N
      • Infra (0)
        • AWS (0)
        • Docker (0)
      • CodingTest (79)
        • Programmers (79)
  • 링크

    • My GitHub
  • 인기 글

  • 태그

    BufferedWriter
    json
    StringTokenizer
    CS
    programmers
    java
    codingtest
    BufferedReader
    switch
    effectivejava
  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
devoks
[프로그래머스, Java] 명예의 전당 (1)
상단으로

티스토리툴바