Skip to content

Commit a98119e

Browse files
committed
[Silver IV] Title: 스택, Time: 168 ms, Memory: 12088 KB -BaekjoonHub
1 parent 102ce8a commit a98119e

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# [Silver IV] 스택 - 10828
2+
3+
[문제 링크](https://www.acmicpc.net/problem/10828)
4+
5+
### 성능 요약
6+
7+
메모리: 12088 KB, 시간: 168 ms
8+
9+
### 분류
10+
11+
자료 구조, 구현, 스택
12+
13+
### 제출 일자
14+
15+
2025년 3월 20일 16:39:10
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>top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.</li>
29+
</ul>
30+
31+
### 입력
32+
33+
<p>첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.</p>
34+
35+
### 출력
36+
37+
<p>출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.</p>
38+
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
2+
let N = Number(input[0]);
3+
4+
let answer = [];
5+
let stack = [];
6+
for (let i = 1; i <= N; i++) {
7+
if (input[i].includes('push')) {
8+
stack.push(input[i].split(' ')[1]);
9+
} else if (input[i].includes('pop')) {
10+
answer.push(stack.length === 0 ? -1 : stack.pop());
11+
} else if (input[i].includes('size')) {
12+
answer.push(stack.length);
13+
} else if (input[i].includes('empty')) {
14+
answer.push(stack.length === 0 ? 1 : 0);
15+
} else {
16+
answer.push(stack.length === 0 ? -1 : stack[stack.length - 1]);
17+
}
18+
}
19+
console.log(answer.join('\n'));
20+
21+
// push, pop 이용해서 구현

0 commit comments

Comments
 (0)