스택 문제를 통해 스택의 개념에 대해 처음 접해보았기 때문에 java의 Stack 클래스가 아닌 ArrayList로 직접 구현해가며 이해하며 문제를 풀어보았다.
DFS와 BFS DFS와 BFS의 개념을 이해하는데에 너무 많은 시간을 소비하였고, 난이도가 높다고 느껴져 문제는 해결하지 못하였다.
[1차 목표] 스택
▼소스코드import java.util.*; import java.io.*; public class stack_10828 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); ArrayList<Integer> stack = new ArrayList<>(); int len = Integer.parseInt(br.readLine()); for (int i = 0; i < len; i++) { String val = br.readLine(); if (val.contains("push")) { stack.add(Integer.parseInt(val.replace("push ",""))); } else if (val.contains("pop")) { try { int tmp = stack.get(stack.size()-1); stack.remove(stack.size()-1); bw.write(String.valueOf(tmp)+"\n"); } catch(Exception e) { bw.write("-1"+"\n"); } } else if (val.contains("top")) { try { bw.write(String.valueOf(stack.get(stack.size()-1))+"\n"); } catch(Exception e) { bw.write("-1"+"\n"); } } else if (val.contains("size")) { bw.write(String.valueOf(stack.size())+"\n"); } else if(val.contains("empty")) { int tmp = (stack.size() == 0) ? 1 : 0; bw.write(String.valueOf(tmp)+"\n"); } } bw.flush(); bw.close(); } }