[Java] 백준 28278번 : 스택 2

28278번 : 스택 2
HootJem's avatar
Aug 16, 2024
[Java] 백준 28278번 : 스택 2
notion image

접근법

  1. 입력 받은 숫자에 맞게 출력시켜주면 된다.
  1. 모든 명령을 입력받고 명령의 결과를 한 줄에 하나 씩 입력하기 위해 StringBuilder를 사용해준다. (systemout 사용 시 시간초과 발생함)

풀이

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Stack; public class Main_28278 { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); int n = Integer.parseInt(br.readLine()); Stack<Integer> st = new Stack<>(); for(int i=0; i<n; i++) { String k = br.readLine(); String[] list = k.split(" "); String command = list[0]; switch(command) { case "1" : { st.push(Integer.parseInt(list[1])); break; } case "2" : { if(st.isEmpty()) { sb.append("-1\n"); }else { sb.append(st.pop()).append("\n"); } break; } case "3" : { sb.append(st.size()).append("\n"); break; } case "4" : { if(st.isEmpty()) { sb.append("1\n"); }else { sb.append("0\n"); } break; } case "5" : { if(st.isEmpty()) { sb.append("-1\n"); }else { sb.append(st.peek()).append("\n"); } break; } } } bw.write(sb.toString()); bw.flush(); bw.close(); br.close(); } }
Share article

[HootJem] 개발 기록 블로그