🌞Algorithm/🔥Baekjoon

[Baekjoon] 15828_Router

뿌야._. 2023. 8. 7. 10:52

Silver IV

문제(출처: https://www.acmicpc.net/problem/15828)

< Router >

 

문제 풀이 

 

Queue를 사용해서 문제를 해결했다.

 

 

 my solution (Java)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.LinkedList;
import java.util.Queue;

public class _15828_ { // Router

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int n = Integer.parseInt(bf.readLine());
		Queue<Integer> queue = new LinkedList<>();

		int num = -1;
		while ((num = Integer.parseInt(bf.readLine())) != -1) {
			if (num == 0) {
				queue.poll();
			} else {
				if (queue.size() < n) {
					queue.add(num);
				}
			}
		}
		if (queue.isEmpty()) {
			bw.write("empty");
		} else {
			while (!queue.isEmpty()) {
				bw.write(queue.poll() + " ");
			}
		}
		bw.flush();
	}
}

 

Main

변수)
n : 버퍼의 크기
queue : Queue <Integer>
num : 패킷의 번호

 

- 버퍼의 크기(n) 입력

- -1이 아닌 정수가 입력으로 들어오면

: 0이라면 패킷 하나 처리한 것이므로 queue에서 poll

: 0이 아니라면 queue의 사이즈를 확인 후 버퍼의 크기보다 작다면 queue에 추가

- 출력

: queue가 비어있다면 empty 출력

: queue가 비어있지 않다면 queue 값 출력