반응형
https://www.acmicpc.net/problem/15828
- 문제
백준 15828번 Router는 큐(Queue)를 이용해서 푸는 문제이다. 큐의 대한 이론을 공부하고 싶으면 밑에 있는 링크를 참고하면 되겠다.
https://propercoding.tistory.com/entry/자료구조-큐Queue
이 문제의 핵심은 큐를 이용하는 것이다. 이 문제에서 주어지는 입력은 세 가지로 나눌 수 있다.
1) 양수
양수가 들어오고 큐의 크기가 버퍼의 크기보다 작으면 양수를 큐에 삽입하고 아니면 넘어간다.
2) 0
0이 들어오면 큐에서 데이터 하나를 제거한다.
3) -1
-1이 들어오면 for-loop을 종료시키고 큐가 비어있으면 empty를 출력하고 큐가 비어있지 않으면 큐의 내용들을 출력해주면 된다.
- 코드
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int size = Integer.parseInt(br.readLine());
Queue<Integer> q = new LinkedList<>();
while (true) {
int num = Integer.parseInt(br.readLine());
if (num == -1) break;
if (num == 0) {
q.remove();
} else if (size > q.size()) {
q.add(num);
}
}
if (q.isEmpty()) {
System.out.print("empty");
} else {
for (int i : q) {
sb.append(i + " ");
}
System.out.print(sb);
}
}
}
- 후기
그렇게 어렵지 않은 큐 문제였던 거 같다. 이 문제는 큐의 개념을 바로 쓰는 문제여서 큐를 응용해서 푸는 문제를 더 풀어봐야 될 거 같다.
반응형
'백준' 카테고리의 다른 글
[백준] 11718번 : 그대로 출력하기 – JAVA [자바] (0) | 2022.03.24 |
---|---|
[백준] 1475번 : 방 번호 – JAVA [자바] (0) | 2022.03.24 |
[백준] 1026번 : 보물 – JAVA [자바] (0) | 2022.03.23 |
[백준] 9656번 : 돌 게임 2 – JAVA [자바] (0) | 2022.03.22 |
[백준] 11899번 : 괄호 끼워넣기 – JAVA [자바] (0) | 2022.03.22 |
댓글