728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42587
위와 같은 문제로 백준에서 풀은 똑같은 프린터 큐 문제가 있는데
https://drcode-devblog.tistory.com/256
문제 풀이 방식이 똑같으나
백준이랑 제출방식의 차이가 다르므로 프로그래머스 버전을 게시합니다.
반응형
package printer;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
import java.util.Queue;
public class Printer {
public static void main(String[] args) {
Solution s = new Solution();
int[] arr1 = {2,1,3,2};
System.out.println(s.solution(arr1, 2));
int[] arr2 = {1,1,9,1,1,1};
System.out.println(s.solution(arr2, 0));
}
}
class Solution {
public int solution(int[] priorities, int location) {
int answer = 0;
Integer[] copy = new Integer[priorities.length];
for (int i = 0; i < copy.length; i++) {
copy[i] = priorities[i];
}
Queue<Paper> q = new LinkedList<Paper>();
for (int i = 0; i < copy.length; i++) {
q.add(new Paper(copy[i], i == location));
}
Arrays.sort(copy, Collections.reverseOrder());
int k = 0;
while(k < copy.length) {
Paper p = q.peek();
int max = copy[k];
if(p.priority == max) {
answer++;
if(p.isRight) break;
k++;
q.poll();
} else {
q.add(q.poll());
}
}
return answer;
}
}
class Paper {
int priority;
boolean isRight;
public Paper() {}
public Paper(int priority, boolean isRight) {
this.priority = priority;
this.isRight = isRight;
}
}
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/java] 직업군 추천하기 (0) | 2021.09.06 |
---|---|
[프로그래머스/java] 상호 평가 - 네이버 코딩테스트(코테) 기출문제 (0) | 2021.08.12 |
[프로그래머스/java] 기능개발 - 스택 사용 (0) | 2021.07.26 |
[프로그래머스/java] 더 맵게 - 우선순위 큐 활용 (0) | 2021.07.12 |
[프로그래머스/java] 숫자 문자열과 영단어 - regex.Pattern 사용 (0) | 2021.07.11 |
댓글