반응형
https://school.programmers.co.kr/learn/courses/30/lessons/138477
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
package Programmers; import java.util.PriorityQueue; public class 명예의전당 { public static void main(String[] args){ 명예의전당 T = new 명예의전당(); int k = 3; int[] score = {10, 100, 20, 150, 1, 100, 200}; T.solution(k, score); } public int[] solution(int k, int[] score) { int[] answer = new int[score.length]; PriorityQueue<Integer> pq = new PriorityQueue<>(); for (int i = 0; i < score.length; i++) { if(pq.size() < k){ pq.offer(score[i]); }else{ if(pq.peek() < score[i]){ pq.poll(); pq.offer(score[i]); } } answer[i] = pq.peek(); } return answer; } }
1. 풀이방법
- PriorityQueue 사용
- score 배열만큼 돌면서 pq 의 크기가 k보다 작으면 추가하고 , 아닐시 현재의 스코어랑 pq의 제일 작은 값이랑 비교한다.
(참일시) pq에 들어있는 제일작은 수를 빼고 현재 score을 추가한다.
- pq의 제일 작은 값을 answer 에 집어넣는다.
반응형
'기타 > 알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 - 숫자카드나누기 Lv2 (Java) (0) | 2023.05.06 |
---|---|
[알고리즘] 프로그래머스 - 귤고르기 java 정렬활용 (0) | 2023.05.03 |
[알고리즘] 프로그래머스 - 점찍기 (Java) (0) | 2023.04.30 |
[알고리즘] 프로그래머스 - 테이블 해시함수 Java (0) | 2023.04.28 |
[알고리즘] 프로그래머스 - 마법의엘리베이터 (0) | 2023.04.27 |