[Programmers] : 스택/큐 :: 프린터
- 💾 알고리즘/프로그래머스
- 2021. 7. 23. 18:01
문제
https://programmers.co.kr/learn/courses/30/lessons/42587?language=java
코딩테스트 연습 - 프린터
일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린
programmers.co.kr
내가한거
package org.kyhslam;
import java.util.*;
public class stack02 {
public static class Task {
private int priority;
private int location;
public Task(int priority, int location) {
this.priority = priority;
this.location = location;
}
}
public static int solution(int[] priorities, int location) {
int answer = 0;
Queue<Task> queue = new LinkedList<>();
ArrayList<Integer> priority = new ArrayList<>();
for(int i=0; i < priorities.length; i++) {
queue.add(new Task(priorities[i], i));
priority.add(priorities[i]);
}
System.out.println("properties == " + Arrays.toString(priorities));
Collections.sort(priority, Comparator.reverseOrder());
System.out.println("sorted == " + priority);
int priorityIndex = 0;
while(!queue.isEmpty()) {
Task t = queue.remove();
if(t.priority == priority.get(priorityIndex)){
answer++;
priorityIndex++;
if(t.location == location){
System.out.println("정답: " + answer);
}
}else{
queue.add(t);
}
System.out.println(t.priority + " , " + t.location);
}
System.out.println(queue);
return 0;
}
public static void main(String[] args) {
// [1, 1, 9, 1, 1, 1] 0 5
int[] properties = {2,1,3,2};
//int[] properties = {1,1,9,1,1,1};
int location = 2;
solution(properties, location);
}
}
다른풀이
class Solution {
public int solution(int[] priorities, int location) {
int answer = 0;
int l = location;
Queue<Integer> que = new LinkedList<Integer>();
for(int i : priorities){
que.add(i);
}
Arrays.sort(priorities);
int size = priorities.length-1;
while(!que.isEmpty()){
Integer i = que.poll();
if(i == priorities[size - answer]){
answer++;
l--;
if(l <0)
break;
}else{
que.add(i);
l--;
if(l<0)
l=que.size()-1;
}
}
return answer;
}
}
'💾 알고리즘 > 프로그래머스' 카테고리의 다른 글
[Programmers] : 해시 > 전화번호 목록 > JAVA (0) | 2021.08.05 |
---|---|
[Programmers] : 해시 > 완주하지 못한 선수 (0) | 2021.07.30 |
[Programmers] : 스택/큐 :: 주식가격 (0) | 2021.07.26 |
[Programmers] 정렬 : k번째수 (0) | 2021.06.04 |
[Programmers] 네트워크 DFS 풀이 (Java) (0) | 2020.07.21 |