본문 바로가기
Algorithm/BaekJoon[Java]

백준 10828(stack)

by 씨니 2022. 3. 24.
728x90

▶ 10828문제 - 스택

- stack : 후입선출(Last In First Out, 나중에 들어온게 가장 먼저 나감).

 

** stack 사용방법 **

- eclipse java.util.stack기능 사용.

- push() : 메소드 사용해 값 넣음.

- pop() : 메소드 이용해 가장 먼저 입력된 값 출력.

- size() : 메소드 이용해 스택의 크기 출력.

- isEmpty() : 메소드 이용해 스택 비어있는지 확인하고 값 확인.

- peek() : 메소드 이용해 스택의 가장 위에 있는 정수 출력. (메소드 사용하지 않아도 가장 마지막에 넣은 값을 출력할 수 있음.)

 

▶ 풀이방법

import java.io.*;
import java.util.*;
public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int count = Integer.parseInt(br.readLine());
		Stack<Integer> stack = new Stack<>();
		
		for(int i = 0; i < count; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			String str = st.nextToken();
			
			switch (str) {
			case "push":
				stack.push(Integer.parseInt(st.nextToken()));
				break;
			case "pop" :
				if(!stack.isEmpty()) bw.write(stack.pop() + "\n");
				else bw.write("-1\n");
				break;
			case "size" :
				bw.write(stack.size() + "\n");
				break;
			case "empty" :
				if(stack.isEmpty()) bw.write("1\n");
				else bw.write("0\n");
				break;
			case "top" :
				if(!stack.isEmpty()) bw.write(stack.peek() + "\n");
				else bw.write("-1\n");
				break;
			}
		}
		
		bw.flush();
		bw.close();
		br.close();
	}
}
728x90

'Algorithm > BaekJoon[Java]' 카테고리의 다른 글

백준 10799  (0) 2022.03.24
백준 9012  (0) 2022.03.24
백준 11004  (0) 2022.03.23
백준 11652  (0) 2022.03.23
백준 10989  (0) 2022.03.23