티스토리 뷰
[ 우선순위 큐 ]
더보기
import java.util.*;
class Solution {
// 문제 :
// + 현재 대기목록에 있는 문서의 중요도가 순서대로 담긴 배열 priorities와
// + 내가 인쇄를 요청한 문서가 현재 대기목록의 어떤 위치에 있는지를 알려주는 location이 매개변수일때
// + 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 return해라.
public int solution(int[] priorities, int location) {
PriorityQueue <Integer> qu = new PriorityQueue<>(Collections.reverseOrder());
// + 1. 우선순위 큐를 사용하여 값을 내림차순으로 우선순위를 두게한다.
// + Collections.reverseOrder를 통해 내림차순 정렬한다.
int answer = 0;
// + 인덱스가 location번째에 있는 문서가 어떤 위치인지 저장하는 변수 생성
// + 2. priorities 배열에 있는 원소를 우선순위 큐에 옮긴다.
for ( int i = 0; i < priorities.length; i++ ) {
qu.add( priorities[i] );
// + priorities 배열에 있는 원소를 우선순위 큐에 옮긴다.
// + 우선순위 큐에 옮겨지면 값이 큰 순서대로 정렬이된다.
} // for
// + 3. 우선순위 큐가 비어질때까지 반복한다.
while( !qu.isEmpty() ) {
// + 4. location의 위치에 있는 값이 나올때 까지 반복한다.
for( int i = 0; i < priorities.length; i++ ) {
// + 5. 우선순위 큐에서 빼낸 값이 배열의 값과 일치아는 경우 출력
if( priorities[i] == qu.peek() ){
// + 6. 값과 위치가 모두 같을 경우에는 답을 반환
if ( i == location ){
answer ++;
return answer;
} // inner if
qu.poll();
answer++;
} // if
} // for
} // while
return -1;
} // solution
} // end class
[ 참고한 블로그 ]
https://ehpub.co.kr/java-%ED%99%9C%EC%9A%A9-3-9-queue-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4/
[Java 활용] 3.9 Queue 인터페이스 – 언제나 휴일
Java의 Queue 인터페이스는 자료구조 큐를 약속한 것입니다. 자료구조 큐는 FIFO(First In First Out, 선입선출) 형태로 자료를 보관하고 꺼내는 버퍼입니다. Java의 Queue 인터페이스에서는 보관할 때 offer
ehpub.co.kr
https://yoongrammer.tistory.com/81
[자료구조] 우선순위 큐 (Priority Queue) 개념 및 구현
목차 우선순위 큐 (Priority Queue) 개념 및 구현 일반적인 큐(Queue)는 먼저 집어넣은 데이터가 먼저 나오는 FIFO (First In First Out) 구조로 저장하는 선형 자료구조입니다. 하지만 우선순위 큐(Priority Queue
yoongrammer.tistory.com
728x90
'코딩 테스트 [ 연습 ]' 카테고리의 다른 글
프로그래머스 - SELECT - 3월에 태어난 여성 회원 목록 출력하기 (0) | 2022.12.28 |
---|---|
프로그래머스 - SELECT - 인기있는 아이스크림 (0) | 2022.12.26 |
프로그래머스 - 입문 - 문자열안에 문자열 (0) | 2022.12.23 |
프로그래머스 - 입문 - 순서쌍의 개수 (0) | 2022.12.22 |
프로그래머스 - 입문 - 문자 반복 출력하기 (0) | 2022.12.21 |
댓글