문제설명
소스코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
Stack<Integer> stack = new Stack<Integer>(); //스택 생성
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
for(int i = 0; i < N; i++)
{
st = new StringTokenizer(br.readLine());
String command = st.nextToken();
if(command.equals("1"))stack.push(Integer.parseInt(st.nextToken()));
else if(command.equals("2"))
{
if(!stack.isEmpty())
{
sb.append(stack.lastElement()).append("\n");
stack.pop();
}
else sb.append(-1).append("\n");
}
else if(command.equals("3")) sb.append(stack.size()).append("\n");
else if(command.equals("4"))
if(stack.isEmpty()) sb.append(1).append("\n");
else sb.append(0).append("\n");
else if(command.equals("5"))
if(stack.isEmpty())sb.append(-1).append("\n");
else sb.append(stack.lastElement()).append("\n");
}
br.close();
System.out.println(sb);
}
}
설명
- 컬렉션 프레임워크인 Stack를 사용하였다.
- Scanner를 사용하면 시간초과가 발생하므로 BufferReader를 사용한다.
System.out.println() 보다는 StringBuilder를 사용한다.
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[Java] 백준 12789번 문제 (도키도키 간식드리미) (0) | 2023.08.08 |
---|---|
[Java] 백준 9012번 문제 (괄호) (0) | 2023.08.07 |
[Java] 백준 10773번 문제 (제로) (0) | 2023.08.06 |
[Java] 백준 17단계 - 11050번 문제 (이항 계수1) (0) | 2023.07.30 |
[Java] 백준 17단계 - 10872번 문제 (팩토리얼)(재귀X) (0) | 2023.07.29 |