-
[BaekJoon/Java] 10828. 스택 - A0532022_PPS/3주차 2023. 1. 18. 21:14
- 문제

- 알고리즘
스택은 명령에 따라 Stack을 사용하여 했다.
이 문제 자체가 시간이 짧아 계속 시간 초과가 떴다.
그래서 BufferdReader을 사용했고, 하나하나 출력했더니 안되서 ArrayList를 이용해 한 번에 출력할 수 있도록 바꿨다.
- 코드
import java.io.*; import java.util.Stack; import java.util.ArrayList; class Main { public static void main(String[] args) throws IOException{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); Stack<Integer> stack = new Stack<Integer>(); ArrayList<Integer> list = new ArrayList<Integer>(); int n = Integer.parseInt(bf.readLine()); for(int i = 0; i<n; i++){ String str = bf.readLine(); if(str.contains("push")){ String[] num = str.split(" "); stack.push(Integer.parseInt(num[1])); }else if(str.equals("pop") || str.equals("top")){ if(stack.empty()) list.add(-1); else{ list.add(stack.peek()); if(str.equals("pop")) stack.pop(); } }else if(str.equals("size")) list.add(stack.size()); else if(str.equals("empty")){ if(stack.empty()) list.add(1); else list.add(0); } } for(int i = 0; i<list.size(); i++) System.out.println(list.get(i)); } }'2022_PPS > 3주차' 카테고리의 다른 글
[Programmers/Java] JadenCase 문자열 만들기 - A041 (0) 2023.01.19 [BaekJoon/Java] 4659. 비밀번호 발음하기 - A049 (0) 2023.01.19 [BaekJoon/Java] 11656. 접미사 배열 - A084 (0) 2023.01.18 [BaekJoon/Java] 10867. 중복 빼고 정렬하기 - A083 (0) 2023.01.18 [LeetCode/Java] 228. Summary Ranges - A014 (0) 2023.01.18