[백준] 10828번: 스택
2022. 1. 8. 22:13ㆍ알고리즘
https://www.acmicpc.net/problem/10828
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<Integer>();
for (int i = 0; i < n; i++) {
String str = br.readLine();
if (str.contains("push")) {
String cap[] = str.split(" ");
stack.push(Integer.parseInt(cap[1]));
} else if (str.equals("top")) {
try {
System.out.println(stack.peek());
} catch (Exception e) {
System.out.println(-1);
}
} else if (str.equals("size")) {
System.out.println(stack.size());
} else if (str.equals("pop")) {
try {
System.out.println(stack.pop());
} catch (Exception e) {
System.out.println(-1);
}
} else if (str.equals("empty")) {
System.out.println((stack.empty() == true ? 1 : 0));
}
}
}
}
코드 설명
많이 귀찮다. 입력이 push x 일 때는 Stack 클래스에 있는 push 메서드를 사용하면 되고, 입력이 top일 때는 Stack 클래스의 peek 메소드를 사용하면 되는데, 이 때 스택에 들어있는 정수가 없을 때 예외가 발생하므로 예외처리를 해서 -1을 출력하게 한다.
입력이 size일 때는 Stack 클래스의 size메소드 사용, 입력이 pop일 때는 Stack클래스의 pop 사용하되, 이도 스택에 들어있는 정수가 없을 때 예외가 발생하므로 예외 처리를 해서 -1을 출력하게 한다.
입력이 empty일 때는 Stack클래스의 empty메도르르 사용하는데, true 일때 1을 출력시키고 false일 때는 0을 출력시키게 한다.
'알고리즘' 카테고리의 다른 글
[백준] 1747번: 소수&팰린드롬 (JAVA) (0) | 2022.01.10 |
---|---|
[백준] 1850번: 최대공약수 (0) | 2022.01.09 |
[백준] 12605번: 단어순서 뒤집기 (JAVA) (2) | 2022.01.06 |
[백준] 7785번: 회사에 있는 사람(JAVA) (1) | 2022.01.04 |
[백준] 2693번: N번째 큰 수 (JAVA) (0) | 2022.01.03 |