본문 바로가기

자료구조+알고리즘/BOJ

[1966][java][백준]프린터큐


풀이

 

1. 현재 리스트의 가장 앞의 문서 '중요도' 확인
2. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면
이 문서 인쇄x 큐 가장 뒤 배치, 그렇지 않다면 바로 인쇄

 

문서를 중요도가 높은 순서대로 출력할 때, 처음에 갖고자 했던 M번째 문서는 몇번째로 뽑히는지 찾아내야 한다.

 

먼저, 자바의 큐 사용법을 몰라서 공부부터 !

- queue.add(1); // 큐에 값 1 추가
- queue.poll(); // queue에 첫번째 값을 반환하고 제거 비어있다면 null
- queue.remove(); // queue에 첫번째 값 제거
- queue.clear(); // queue 초기화
- queue.peek(); // queue의 첫번째 값 참조 / 삭제없이 요소 읽음/ 큐가 비어있으면 null반환

 

* poll() 가장 먼저 보관한 값 꺼내고 반환!!!!
  peek() 가장 먼저 보관한 값 단순 참조, 꺼내지 않음

 

 

1. 입력 

  1-1 Scanner

  1-2 BufferedReader

       : 단, BufferedReader 는 문자열을 한 줄로 읽기 때문에 N과 M을 구분하기 위해 공백을 기준으로 문자열을 분리해주어야하니 StringTokenizer 을 사용

 

728x90
반응형