-
[java] 백준 알고리즘 10828번 스택 풀이알고리즘/백준 알고리즘 2018. 7. 11. 16:30
스택.
스택에 대한 설명: 스택(위키피디아)
스택은 바닥은 깔끔하게 막혀있고, 사각형 모양의 통에 데이터를 넣는다고 생각하면 된다.
그럼 원하는 데이터를 꺼내려면 위에서부터 꺼낼 수 밖에 없다.
데이터를 넣을 때도 퇴적 작용처럼 위에서 하나하나씩 쌓인다.
이를 First In, Last Out이라 한다. 처음 들어간 것이 가장 마지막에 나온다는 뜻이다.
자바에 있는 Stack 클래스를 활용해 쉽게 구현했다.
* 풀이 소스
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849public class Baekjoon10828{static StringTokenizer st;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));st = new StringTokenizer(br.readLine());int orderCount = Integer.parseInt(st.nextToken());Stack<Integer> stackImpl = new Stack<>();for(int i=0; i<orderCount; i++) {st = new StringTokenizer(br.readLine());String order = st.nextToken();if(order.equals("push")) {stackImpl.push(Integer.parseInt(st.nextToken()));}else if(order.equals("pop")) {if(stackImpl.size() >0) {bw.write(stackImpl.pop()+"\n");}else {bw.write("-1"+"\n");}}else if(order.equals("size")) {bw.write(stackImpl.size()+"\n");}else if(order.equals("empty")) {if(stackImpl.isEmpty()) {bw.write("1"+"\n");}else {bw.write("0"+"\n");}}else if(order.equals("top")) {if(stackImpl.size() >0) {bw.write(stackImpl.get(stackImpl.size()-1)+"\n");}else {bw.write("-1"+"\n");}}}bw.flush();}}cs '알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[java] 백준 알고리즘 2504번 괄호의 값 풀이 (0) 2018.07.18 [java] 백준 알고리즘 1874번 스택 수열 풀이 (0) 2018.07.11 [java] 백준 알고리즘 9020번 골드바흐의 추측 풀이 (0) 2018.07.09 [java] 백준 알고리즘 4948번 베르트랑 공준 풀이 (0) 2018.07.09 [java] 백준 알고리즘 1260번 DFS와 BFS 풀이 (0) 2018.07.09