https://www.acmicpc.net/problem/10828
1. 풀이
이 문제는 스택을 구현할 수 있느냐 없느냐를 묻는 문제인 듯하다.
자바 Collection에 정의된 스택을 사용해도 되고, 그냥 배열과 size변수를 선언하여 풀어도 될듯하다.
2. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int size = 0;
int[] stack = new int[num];
for(int i = 0; i < num; i++) {
String input = sc.next();
if(input.equals("push")) {
size++;
stack[size] = sc.nextInt();
} else if(input.equals("pop")) {
if(size == 0)
System.out.println(-1);
else {
System.out.println(stack[size]);
stack[size] = 0;
size--;
}
} else if(input.equals("top")) {
if(size == 0)
System.out.println(-1);
else
System.out.println(stack[size]);
} else if(input.equals("size")) {
System.out.println(size);
} else if(input.equals("empty")) {
if(size == 0)
System.out.println(1);
else
System.out.println(0);
}
}
sc.close();
return;
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
Stack<Integer> stack = new Stack<Integer>();
for(int i = 0; i < num; i++) {
String input = sc.next();
if(input.equals("push")) {
stack.push(sc.nextInt());
} else if (input.equals("pop")) {
if(stack.isEmpty())
System.out.println(-1);
else
System.out.println(stack.pop());
} else if (input.equals("top")) {
if(stack.isEmpty())
System.out.println(-1);
else
System.out.println(stack.peek());
} else if (input.equals("size")) {
System.out.println(stack.size());
} else if (input.equals("empty")) {
if(stack.isEmpty())
System.out.println(1);
else
System.out.println(0);
}
}
sc.close();
return;
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 9012] 괄호 - 자바 (0) | 2020.04.23 |
---|---|
[백준 9093] 단어 뒤집기 - 자바 (0) | 2020.04.23 |
[백준 1924] 2007년 (0) | 2020.04.11 |
[백준 1697] 숨바꼭질 - 자바 (0) | 2020.04.05 |
[백준 1260] DFS와 BFS - 자바 (0) | 2020.04.04 |
댓글