반응형
안녕하세요
Henry's Algorithm의 Henry입니다.
오늘은 제가 프로그래머스
Level 2의 프린터 문제를 풀어보았습니다.
첫 시도는 잘 안풀렸는데,
다음날 다시 풀어보니까, 생각이 잘 정리되서 잘 풀렸네요!ㅎㅎ
문제는 푸는 요령:
저는 Queue 자료구조를 사용해서 풀었습니다.
priorities와 index 정보를 가지고 있는 배열 각각 1개씩 만들고,
while 문을 통해 priorities가 모두 pop 되기 전까지 우선순위를 비교하는 과정을 반복했습니다.
- java.util.Collections을 import해서 List의 최대, 최소를 구할 수 있어, 해당 라이브러리를 사용했습니다.
아래는 제가 푼 코드입니다.
import java.util.Queue;
import java.util.LinkedList;
import java.util.*;
class Solution {
public int solution(int[] priorities, int location) {
int answer = 0;
Queue<Integer> indexs = new LinkedList<>();
Queue<Integer> priors = new LinkedList<>();
for(int i = 0; i< priorities.length; i++){
priors.add(priorities[i]);
indexs.add(i);
}
while(!priors.isEmpty()){
int front = priors.poll();
int frontIdx = indexs.poll();
int max = priors.isEmpty() ? -1 : Collections.max(priors);
if(max == -1){
return answer + 1;
}
if(front >= max){
answer += 1;
if(frontIdx == location){
return answer;
}
continue;
}
priors.add(front);
indexs.add(frontIdx);
}
return answer;
}
}
오늘도 즐거운 코딩되세요~!ㅎㅎ
반응형
'프로그래머스' 카테고리의 다른 글
프로그래머스 '두 수의 합' 문제풀이(PYTHON) - Henry's Algorithm (2) | 2022.10.11 |
---|---|
[프로그래머스] 2022 KAKAO BLIND RECRUITMENT - 신고 결과 받기 (0) | 2022.03.03 |
프로그래머스 '기능개발' 문제풀이(JAVA) - Henry's Algorithm (0) | 2021.10.10 |
프로그래머스 '완주하지 못한 선수' 문제풀이(JAVA) - Henry's Algorithm (0) | 2021.10.06 |
프로그래머스 [2019 카카오 블라인드 채용] 오픈채팅방 - Henry's Algorithm (0) | 2021.09.02 |