• 문제 링크
15828번: Router
인터넷을 사용하기 위해서는 컴퓨터에 인터넷 회선을 연결하거나 Wi-Fi를 연결해야 한다. 이렇게 연결된 네트워크를 통해 컴퓨터에는 통신이 가능하다. 마음에 드는 노래나 동영상이 있는 곳에
www.acmicpc.net
• 풀이 과정
라우터를 Queue 로 구현하고, 해당 큐에 저장할 수 있는 데이터의 수 n 을 입력받는다.
-1 을 입력받을 때까지 패킷의 정보를 입력받으며
입력받은 값이 0일 때 큐를 poll 하여 가장 먼저 들어온 값을 처리한다.
그외의 값은 만약 큐의 크기가 n, 즉 라우터의 버퍼보다 작을 경우 여유 공간이 있으므로 해당 값을 offer,
큐의 크기가 n 보다 같거나 클 경우 더 이상 추가로 값을 수용 불가하므로 해당 값을 무시한다.
이러한 과정을 거친 후 큐에 값이 없으면 "empty" 를 출력, 값이 존재할 경우 모두 꺼내어 정답으로써 출력한다.
• 풀이 코드
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 Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
Queue<Integer> router = new LinkedList<>();
while (true) {
int packet = Integer.parseInt(br.readLine());
if (packet == -1)
break;
if (packet == 0)
router.poll();
else if (router.size() < n)
router.offer(packet);
}
if (router.isEmpty())
bw.write("empty");
else {
while (!router.isEmpty())
bw.write(router.poll() + "\n");
}
bw.flush();
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 5430 AC - Data Structure / Java (0) | 2022.11.05 |
---|---|
[백준] 1021 회전하는 큐 - Data Structure / Java (0) | 2022.11.04 |
[백준] 4949 균형잡힌 세상 - Data Structure / Java (0) | 2022.11.02 |
[백준] 10773 제로 - Data Structure / Java (0) | 2022.11.01 |
[백준] 1647 도시 분할 계획 - Graph Theory / Java (0) | 2022.10.31 |
댓글