250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 백준
- 알고리즘
- 삼성역테
- 완전탐색
- 백준13458
- 완탐
- 백준15652
- 주사위굴리기2
- Bfs와DFS
- 재귀함수
- 정올 1620
- 정보처리기사
- D드라이브생성
- 23288
- BFS
- 중복순열
- 자바
- 순열
- 코테준비
- 에라토스테네스의채
- 볼륨 만들기
- N과M
- 알고리즘개념
- 파티션 크기 조정
- 자바 코테
- 중복조합
- java
- 전화번호속의암호
- 코테
- 백준2251
Archives
- Today
- Total
뚱땅뚱땅
[문제] 백준 1966번 프린터 큐 본문
728x90
1966번: 프린터 큐
여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에
www.acmicpc.net
내 풀이
public class BOJ_1966 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(in.readLine());
for (int t = 0; t < T; t++) {
int res = 0;
st = new StringTokenizer(in.readLine());
int N = Integer.parseInt(st.nextToken()); // 문서 개수
int M = Integer.parseInt(st.nextToken()); // 궁금한 인덱스 번호
Queue<int[]> q = new LinkedList<>();
List<Integer> list = new ArrayList<>(); // 최대값 찾는 용의 리스트
int cnt = 0, idx = 0; // cnt: 인쇄가 몇번 됐는지, idx: list 순회용 인덱스
st = new StringTokenizer(in.readLine());
for (int i = 0; i < N; i++) {
int num = Integer.parseInt(st.nextToken());
list.add(num);
q.offer(new int[] { i, num }); // i: 문서 인덱스 num: 중요도
}
Collections.sort(list, Collections.reverseOrder()); // 내림차순 정렬
while (!q.isEmpty()) {
if (list.get(idx) != null && q.peek()[1] == list.get(idx)) {// 중요도 바교
cnt++; // q.peek()에 있는걸 인쇄할 수 있으니 cnt 증가
idx++; // 다음 최대값 찾을 수 있도록 list의 idx 증가
if (q.peek()[0] == M) { // 찾고자 하는 인덱스 넘버라면 cnt 반환
res = cnt;
break;
}
q.poll();
}else {
q.offer(q.poll()); //q 앞에 있는걸 뒤로 삽입
}
}
System.out.println(res);
}
}
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[문제] 백준 7569번 토마토 (0) | 2021.02.11 |
---|---|
[문제] 백준 7576번 토마토 (0) | 2021.02.11 |
[문제] 백준 1158번 요세푸스 문제 (0) | 2021.02.09 |
[문제] 백준 1018번 체스판 다시 칠하기 (0) | 2021.02.09 |
[문제] 백준 2667번 단지번호 붙이기 (0) | 2021.02.08 |
Comments