-
[백준/JAVA] 10828 스택ETC/Algorithm 2023. 5. 26. 17:25
풀이
- push의 경우에는 명령어에 입력값을 같이 보낸다. 조건문을 통해 push 명령어일 경우 nextToken()을 한번 더 수행하도록 했다.
- 각 명령어의 경우를 Switch문을 통해서 처리하였다.
Java에서 top을 구현하기 위해서는 Peek을 사용하는데 내용물이 없으면 오류가 발생한다. 따로 조건 추가해야한다.
제출코드
import java.io.*; import java.util.*; class Main { static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; Stack<Integer> stack = new Stack<>(); int N = Integer.parseInt(br.readLine()); String cmd; int x = 0; for (int i = 0; i < N; i++) { st = new StringTokenizer(br.readLine()," "); cmd = st.nextToken(); if (cmd.equals("push")) { x = Integer.parseInt(st.nextToken()); } switch (cmd) { case "push": stack.push(x); break; case "pop": if (stack.isEmpty()) { bw.write("-1"); bw.write("\n"); } else { bw.write(String.valueOf(stack.pop())); bw.write("\n"); } break; case "size": bw.write(String.valueOf(stack.size())); bw.write("\n"); break; case "empty": if (stack.isEmpty()) { bw.write(String.valueOf(1)); bw.write("\n"); } else { bw.write(String.valueOf(0)); bw.write("\n"); } break; case "top": if (stack.isEmpty()) { bw.write("-1"); bw.write("\n"); } else { bw.write(String.valueOf(stack.peek())); bw.write("\n"); } break; default: break; } } bw.flush(); } }