๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/10106)
< The Geneva Confection >
๋ฌธ์ ํ์ด
Stack ๋ ๊ฐ๋ฅผ ์ฌ์ฉํ์ฌ lake์ branch์ ์ ์ ํ ์ด๋์์ผ ์์๋๋ก ๋ง๋ค ์ ์๋์ง ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;
public class _10106_ { // The Geneva Confection
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(bf.readLine());
for (int i = 0; i < t; i++) {
int n = Integer.parseInt(bf.readLine());
Stack<Integer> lake = new Stack<>();
Stack<Integer> branch = new Stack<>();
int cnt = 1;
for (int j = 0; j < n; j++) {
lake.add(Integer.parseInt(bf.readLine()));
}
boolean flag = false;
while (!lake.isEmpty() || !branch.isEmpty()) {
if (!branch.isEmpty() && branch.peek() == cnt) {
branch.pop();
cnt++;
} else if (!lake.isEmpty() && lake.peek() == cnt) {
lake.pop();
cnt++;
} else {
if(lake.isEmpty()) {
flag=true;
break;
}
branch.add(lake.pop());
}
}
if(flag) {
bw.write("N\n");
}else {
bw.write("Y\n");
}
}
bw.flush();
}
}
๋ณ์)
t : ํ ์คํธ ์ผ์ด์ค ๊ฐ์
n : ๊ธฐ์ฐจ ์นธ ์
lake, branch : Stack <Integer>
cnt : ํ์ฌ ์์
ํ ์คํธ ์ผ์ด์ค ์๋ฅผ ์ ๋ ฅ๋ฐ์ ํ ์คํธ ์ผ์ด์ค ์๋งํผ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ๊ธฐ์ฐจ ์นธ ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค.
2) ๊ธฐ์ฐจ ์นธ ์๋งํผ ์ซ์๋ฅผ ์ ๋ ฅ๋ฐ์ lake์ ์ ์ฅํ๋ค.
3) lake์ ๊ฐ์ด ์๊ฑฐ๋ branch์ ๊ฐ์ด ์์ ๋ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
3-1) branch์ peek ๊ฐ์ด cnt์ ์ผ์นํ๋ค๋ฉด pop, cnt+1
3-2) lake์ peek ๊ฐ์ด cnt์ ์ผ์นํ๋ค๋ฉด pop, cnt+1
3-3) ๋ ๋ค ์ผ์นํ์ง ์๊ณ lake๊ฐ ๋น์ด์๋ค๋ฉด ์์๋๋ก ์์ฑํ ์ ์์ผ๋ฏ๋ก ์ข ๋ฃ, lake๊ฐ ๋น์ด์์ง ์๋ค๋ฉด lake์ pop ํ ๊ฐ์ branch์ ์ ์ฅ.
4) flag๊ฐ true๋ผ๋ฉด N ์ถ๋ ฅ, false๋ผ๋ฉด Y ์ถ๋ ฅ

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 3277_DOMAINS (0) | 2025.11.07 |
|---|---|
| [Baekjoon] 6379_Scramble Sort (0) | 2025.11.05 |
| [Baekjoon] 29882_Ranking (0) | 2025.11.04 |
| [Baekjoon] 21149_Unread Messages (0) | 2025.11.03 |
| [Baekjoon] 5741_Soccer League (0) | 2025.10.31 |