๋ฌธ์
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/10828
-
- push X: ์ ์ X๋ฅผ ์คํ์ ๋ฃ๋ ์ฐ์ฐ์ด๋ค.
- pop: ์คํ์์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ๋นผ๊ณ , ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์คํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
- size: ์คํ์ ๋ค์ด์๋ ์ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
- empty: ์คํ์ด ๋น์ด์์ผ๋ฉด 1, ์๋๋ฉด 0์ ์ถ๋ ฅํ๋ค.
- top: ์คํ์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์คํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.์ ์๋ฅผ ์ ์ฅํ๋ ์คํ์ ๊ตฌํํ ๋ค์, ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- ๋ช ๋ น์ ์ด ๋ค์ฏ ๊ฐ์ง์ด๋ค.
- ์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค.
- ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง ์์ ๋ช ๋ น์ด ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
- ์ถ๋ ฅํด์ผํ๋ ๋ช ๋ น์ด ์ฃผ์ด์ง ๋๋ง๋ค, ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
์์ด๋์ด
- Stack์ ์ฌ์ฉํ์ฌ ๊ฐ ๋ช
๋ น์ด์ ๋ฐ๋ผ add, pop, size, isEmpty, peek๋ฅผ ์ฌ์ฉํ์ฌ์ ํ์๋ค.
๊ฒช์ ์ํ์ฐฉ์ค
- X
์ฝ๋
import java.io.*;
import java.util.*;
public class BOJ10828 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
// stack์ ์ ์ฅํ stack
Stack<Integer> s = new Stack<>();
for(int test = 0; test < N; test++){
StringTokenizer st = new StringTokenizer(br.readLine());
// ๋ช
๋ น์ด๋ฅผ ์
๋ ฅ๋ฐ์
String order = st.nextToken();
// ๋ง์ฝ ๋ช
๋ น์ด๊ฐ push๋ผ๋ฉด
if(order.equals("push")){
int n = Integer.parseInt(st.nextToken());
// n์ stack์ ์ถ๊ฐ
s.add(n);
}
// ๋ง์ฝ ๋ช
๋ น์ด๊ฐ pop์ด๋ผ๋ฉด
else if(order.equals("pop")){
// ๋ง์ฝ stack์ด ๋น์ด์๋ค๋ฉด -1 ์ถ๋ ฅ
if(s.isEmpty()){
sb.append(-1 + "\n");
}
// ๋น์ด์์ง ์๋ค๋ฉด
else{
// ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ๋นผ๋ด๊ณ ์ ์ฅํ๊ณ ์ถ๋ ฅ
int n = s.pop();
sb.append(n + "\n");
}
}
// ๋ง์ฝ ๋ช
๋ น์ด๊ฐ size๋ผ๋ฉด
else if(order.equals("size")){
// stack์ ์ฌ์ด์ฆ๋ฅผ ์ ์ฅ ํ ์ถ๋ ฅ
int n = s.size();
sb.append(n + "\n");
}
// ๋ง์ฝ ๋ช
๋ น์ด๊ฐ empty๋ผ๋ฉด
else if(order.equals("empty")){
// stack์ด ๋น์ด์์ ๊ฒฝ์ฐ
if(s.isEmpty()){
// 1์ถ๋ ฅ
sb.append(1 + "\n");
}
// ๋น์ด์์ง ์๋ค๋ฉด
else{
// 0์ถ๋ ฅ
sb.append(0 + "\n");
}
}
// ๋ง์ฝ ๋ช
๋ น์ด๊ฐ top์ด๊ณ
else if(order.equals("top")){
// stack์ด ๋น์ด์๋ค๋ฉด
if(s.isEmpty()){
sb.append(-1 + "\n");
}
// ๋น์ด์์ง ์๋ค๋ฉด
else{
// ๊ผญ๋๊ธฐ ๊ฐ์ ์ ์ฅ ํ ์ถ๋ ฅ
int n = s.peek();
sb.append(n + "\n");
}
}
}
System.out.println(sb);
}
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] BOJ 18110 solved.ac (2) | 2024.07.21 |
---|---|
[Java] BOJ 10845 ํ (4) | 2024.07.20 |
[Java] BOJ 10816 ์ซ์ ์นด๋ 2 (0) | 2024.07.20 |
[Java] BOJ 10773 ์ ๋ก (0) | 2024.07.20 |
[Java] BOJ 9012 ๊ดํธ (2) | 2024.07.19 |