🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
[프로그래머스] 명예의 전당(1) (Java 풀이)
프로그래머스 - 명예의 전당(1) : Java https://school.programmers.co.kr/learn/courses/30/lessons/138477?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤
devmoony.tistory.com
import java.util.*;
class Solution {
public int[] solution(int k, int[] score) {
int[] answer = new int[score.length]; // 발표 점수
List<Integer> list = new ArrayList<>(); // 명예의 전당
for(int i=0 ; i < score.length ; i++) {
if(list.size() < k) {
list.add(score[i]);
} else {
if(list.get(0) < score[i]) {
list.set(0, score[i]);
}
}
Collections.sort(list);
answer[i] = list.get(0);
}
// 전당의 최하위 점수
return answer;
}
}
명예의 전당을 ArrayList로 받고.
반복문을 k보다 작을 때와 그 이외의 경우로 나눠서 구해줘야지- 할 생각은 했는데
정렬도 해야 하는데 어디서 하지,,? 이런 생각하다가
어영부영 고민하다가 못 풀어서 다른 분 코드를 보고 해결했다....
✅ Collections.sort(list)
의 위치! 리스트에 값 넣고 바로 정렬...
🔺 다른 풀이들
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
public int[] solution(int k, int[] score) {
int[] answer = new int[score.length];
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
for(int i = 0; i < score.length; i++) {
priorityQueue.add(score[i]); // 값 추가
if (priorityQueue.size() > k) {
priorityQueue.poll(); // 값 삭제
}
answer[i] = priorityQueue.peek(); // 첫 번째 값 참조
}
return answer;
}
}
우선순위 큐 를 이용하셨다!!!!
우선순위 큐는 기본적으로 우선순위가 낮은 숫자 순으로 정렬한다 함....!!
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(); // 우선순위 낮은 순 정렬
priorityQueue.add(score[i]); // 값 score[i] 추가
priorityQueue.poll(); // 첫 번째 값 반환 · 제거
priorityQueue.peek(); // 첫 번째 값 참조
+ 우선순위가 높은 숫자 순으로 정렬하고 싶으면 이렇게...
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(Collections.reverseOrder());
(참고)
[프로그래머스] 명예의 전당 (1) 자바(JAVA)
츄르사려고 코딩하는 코집사입니다. 1. [프로그래머스] 명예의 전당 (1) 자바(JAVA) 1) 문제 제목 : 명예의 전당 (1) 2) 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/138477?language=java 프로그래
yongku.tistory.com
✔ 우선순위 큐 (Priority Queue)
[Java] Priority Queue(우선 순위 큐)
PriorityQueue란 우선순위 큐로써 일반적인 큐의 구조 FIFO(First In First Out)를 가지면서, 데이터가 들어온 순서대로 데이터가 나가는 것이 아닌 우선순위를 먼저 결정하고 그 우선순위가 높은 데이터
velog.io
[Java] PriorityQueue(우선순위 큐) 클래스 사용법 & 예제 총정리
우선순위 큐(Priority Queue)란? 일반적으로 큐는 데이터를 일시적으로 쌓아두기 위한 자료구조로 스택과는 다르게 FIFO(First In First Out)의 구조 즉 먼저 들어온 데이터가 먼저 나가는 구조를 가집니다
coding-factory.tistory.com
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 1] 콜라 문제 (0) | 2023.03.14 |
---|---|
[프로그래머스/Level1] 옹알이 (2) (0) | 2023.03.13 |
[프로그래머스/Lv. 1] 최소직사각형 (0) | 2023.03.12 |
[프로그래머스/Lv. 1] 2016년 (0) | 2023.03.11 |
[프로그래머스/Lv. 1] 문자열 나누기 (1) | 2023.03.11 |