[Java] 백준(Baekjoon) 28278. 스택2
2024. 1. 29. 17:25ㆍAlgorithm/자료구조
https://www.acmicpc.net/problem/28278
28278번: 스택 2
첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다.
www.acmicpc.net
package dataStructure;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class Ex28278 {
static Stack<Integer> stack= new Stack<Integer>();
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
int n= Integer.parseInt(br.readLine());
StringBuilder sb= new StringBuilder();
for(int i=0;i<n;i++) {
String s= br.readLine();
if(s.length()>1) {
//1
StringTokenizer st= new StringTokenizer(s);
int order= Integer.parseInt(st.nextToken()); //1
int su= Integer.parseInt(st.nextToken()); //넣을 수
if(order==1) {
stack.add(su);
}
}else {
//2
int num= Integer.parseInt(s);
if(num==2) {
if(!stack.isEmpty()) {
sb.append(stack.pop()+"\n");
}else {
sb.append("-1\n");
}
}else if(num==3) {
sb.append(stack.size()+"\n");
}else if(num==4) {
if(!stack.isEmpty()) {
sb.append("0\n");
}else {
sb.append("1\n");
}
}else if(num==5) {
if(!stack.isEmpty()) {
sb.append(stack.peek()+"\n");
}else {
sb.append("-1\n");
}
}
}
}
System.out.println(sb.toString().trim());
}
}
- Stack 자료구조를 사용하여 구현
참고:
https://ittrue.tistory.com/200
[Java] 자바 스택(Stack) 클래스 메서드 정리 및 활용
스택이란? 스택은 ‘쌓다.’, ‘쌓이다.’와 같은 뜻을 가진 용어로, 접시를 높이 쌓아 놓은 형태와 비슷한 자료구조이다. 즉, 데이터를 순서대로 쌓는 자료구조이다. 실생활에서 흔히 접할 수
ittrue.tistory.com
'Algorithm > 자료구조' 카테고리의 다른 글
[Java] 백준(Baekjoon) 28279. 덱2 (1) | 2024.01.30 |
---|---|
[Java] 백준(Baekjoon) 12789. 도키도키 간식드리미 (2) | 2024.01.30 |
[Java] 백준(Baekjoon) 1620. 나는야 포켓몬 마스터 이다솜 (2) | 2024.01.29 |
[Java] 백준(Baekjoon) 10815. 숫자카드 (0) | 2024.01.26 |
[Java] 백준(Baekjoon) 11279. 최대 힙 (0) | 2024.01.26 |