2018. 5. 17에 작성된 네이버블로그 글입니다
계속 런타임 에러나는데 나는 이게 메모리 문제인줄 알고 쓸데 없이 삽질함.
결론 - Degenerate Case 꼼꼼하게 확인하자
java.util 의 Stack 을 사용하면 훨씬 깔끔해지겠지만,
오랜만의 코딩이니까 직접 구현해보겠다
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int index=scan.nextInt(); scan.nextLine(); // 입력 받을 명령어 수를 입력한 후 엔터를 치는게 for문 안 nextLine에 먹혀서 미리 한 번 해줌 Stack stack= new Stack(); for(int i=0; i++) { String command=scan.nextLine(); if(command.contains(" ")) { int num=Integer.parseInt(command.split(" ")[1]); stack.push(num); } if(command.equals("pop")) System.out.println(stack.pop()); if(command.equals("size")) System.out.println(stack.size()); if(command.equals("empty")) System.out.println(stack.empty()); if(command.equals("top")) System.out.println(stack.top()); } } } class Stack{ int[] array=new int[10000]; int Top=0; int pop() { if(Top==0) return -1; return array[--Top]; } void push(int n) { array[Top++]=n; } int size() { return Top; } int empty() { if(Top==0) return 1; return 0; } int top() { if(Top==0) return -1; return array[Top-1]; } }
'이론 > 문제풀이' 카테고리의 다른 글
[Codility] Lesson3 - Time complexity (0) | 2018.07.30 |
---|---|
[Codility Lesson 2] Rotate Array (0) | 2018.07.28 |
[백준알고리즘-9095] 1,2,3 더하기(Dynamic Programming)-java (1) | 2018.07.09 |
[백준 알고리즘 - 4963] 섬의개수(bfs) - java (0) | 2018.07.09 |
[백준 알고리즘 - 2178] 미로찾기(bfs) - java (0) | 2018.07.09 |