문제 출처
https://www.acmicpc.net/problem/10828
접근 방식 및 풀이
- 스택을 활용하는 기초 문제이다.
- 스택 선언 후 명령어에 맞게 코딩해주면 된다.
소스 코드
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Stack<Integer> stack = new Stack<Integer>();
String str;
for (int i = 0; i <n ; i++) {
str = sc.next();
System.out.println("--------- " +i + " :: "+str);
if(str.startsWith("push")){
stack.push(sc.nextInt());
}else if(str.equals("pop")){
if(stack.size()<1){
System.out.println(-1);
}else {
int a = stack.pop();
System.out.println(a);
}
}else if(str.equals("size")){
System.out.println(stack.size());
}else if(str.equals("empty")){
if(stack.isEmpty()){
System.out.println(1);
}else {
System.out.println(0);
}
}else if(str.equals("top")){
if(stack.size()<1){
System.out.println(-1);
}else{
System.out.println(stack.peek());
}
}
}
}
}
결과
'Competition > Baekjoon' 카테고리의 다른 글
[백준] 10845번 자바 큐 기초 (0) | 2020.03.12 |
---|---|
[백준] 10820번 자바 아스키코드활용 (0) | 2020.03.11 |
[백준] 10814번 자바 array2차원배열 (0) | 2020.03.11 |