python
import sys
n = int(sys.stdin.readline())
stack = [] #스택
res = [] #결과 담을 list
#empty 확인 함수
def empty(lst):
if len(lst) == 0:
return True
for i in range(n):
command = sys.stdin.readline().split()
#push일 때
if command[0] == 'push':
stack.append(command[1])
#pop일 때
elif command[0] == 'pop':
if empty(stack):
res.append(-1)
else:
res.append(stack.pop())
#size일 때
elif command[0] == 'size':
res.append(len(stack))
#empty일 때
elif command[0] == 'empty':
if empty(stack):
res.append(1)
else:
res.append(0)
#top일 때
elif command[0] == 'top':
if empty(stack):
res.append(-1)
else:
res.append(stack[-1])
#결과 출력
for i in range(len(res)):
print(res[i])
JAVA
import java.io.*;
import java.util.Stack;
// 10828번 스택
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));
// 스택 사용
Stack<Integer> s = new Stack<>();
int num = Integer.parseInt(br.readLine());
for (int i = 0; i < num; i++) {
String[] input = br.readLine().split(" ");
switch (input[0]) {
case "push":
s.push(Integer.parseInt(input[1]));
break;
case "pop":
if (s.empty()) {
bw.write("-1" + "\n");
} else {
bw.write(s.pop() + "\n");
}
break;
case "size":
bw.write(s.size() + "\n");
break;
case "empty":
if (s.empty()) {
bw.write("1" + "\n");
} else {
bw.write("0" + "\n");
}
break;
case "top":
if (s.empty()) {
bw.write("-1" + "\n");
} else {
bw.write(s.peek() + "\n");
}
break;
}
}
bw.flush();
bw.close();
}
}
'Python' 카테고리의 다른 글
BAEKJOON(백준) Stack - 10773번 PYTHON / JAVA CODE (0) | 2023.01.20 |
---|---|
BAEKJOON(백준) Stack - 4949번 PYTHON / JAVA CODE (0) | 2023.01.19 |