Skip to content

Commit b1f2261

Browse files
committed
[Silver IV] Title: 큐, Time: 104 ms, Memory: 12316 KB -BaekjoonHub
1 parent aca4843 commit b1f2261

2 files changed

Lines changed: 108 additions & 0 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# [Silver IV] 큐 - 10845
2+
3+
[문제 링크](https://www.acmicpc.net/problem/10845)
4+
5+
### 성능 요약
6+
7+
메모리: 12316 KB, 시간: 104 ms
8+
9+
### 분류
10+
11+
자료 구조, 큐
12+
13+
### 제출 일자
14+
15+
2026년 3월 4일 15:35:11
16+
17+
### 문제 설명
18+
19+
<p>정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.</p>
20+
21+
<p>명령은 총 여섯 가지이다.</p>
22+
23+
<ul>
24+
<li>push X: 정수 X를 큐에 넣는 연산이다.</li>
25+
<li>pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.</li>
26+
<li>size: 큐에 들어있는 정수의 개수를 출력한다.</li>
27+
<li>empty: 큐가 비어있으면 1, 아니면 0을 출력한다.</li>
28+
<li>front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.</li>
29+
<li>back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.</li>
30+
</ul>
31+
32+
### 입력
33+
34+
<p>첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.</p>
35+
36+
### 출력
37+
38+
<p>출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.</p>
39+

백준/Silver/10845. 큐/큐.js

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
// /dev/stdin
2+
const input = require("fs")
3+
.readFileSync("/dev/stdin")
4+
.toString()
5+
.trim()
6+
.split("\n")
7+
.map((x) => x.replace("\r", ""));
8+
9+
const N = Number(input[0]);
10+
const queue = [];
11+
let answer = "";
12+
let head = 0;
13+
let tail = 0;
14+
15+
for (let i = 1; i <= N; i++) {
16+
const cmd = input[i];
17+
//answer += cmd + "\n";
18+
19+
if (cmd.startsWith("push")) {
20+
const val = Number(cmd.split(" ")[1]);
21+
queue.push(val);
22+
tail++;
23+
continue;
24+
}
25+
26+
if (cmd === "pop") {
27+
if (head === tail) {
28+
answer += "-1" + "\n";
29+
} else {
30+
answer += queue[head] + "\n";
31+
head++;
32+
//tail--;
33+
}
34+
continue;
35+
}
36+
37+
if (cmd === "size") {
38+
answer += tail - head + "\n";
39+
continue;
40+
}
41+
42+
if (cmd === "empty") {
43+
if (head === tail) {
44+
answer += "1" + "\n";
45+
} else {
46+
answer += "0" + "\n";
47+
}
48+
continue;
49+
}
50+
51+
if (cmd === "front") {
52+
if (head === tail) {
53+
answer += "-1" + "\n";
54+
} else {
55+
answer += queue[head] + "\n";
56+
}
57+
}
58+
59+
if (cmd === "back") {
60+
if (head === tail) {
61+
answer += "-1" + "\n";
62+
} else {
63+
answer += queue[queue.length - 1] + "\n";
64+
}
65+
continue;
66+
}
67+
}
68+
69+
console.log(answer);

0 commit comments

Comments
 (0)