Programming/BOJ Solutions
[Java] BOJ 12789: 도키도키 간식드리미
funczun
2025. 2. 18. 02:18
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class Problem12789 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
Stack<Integer> stack = new Stack<>();
int targetOrder = 1;
while (st.hasMoreTokens()) {
if (!stack.isEmpty()) {
if (stack.peek() == targetOrder) {
stack.pop();
targetOrder++;
continue;
}
}
int inputOrder = Integer.parseInt(st.nextToken());
if (inputOrder == targetOrder) {
targetOrder++;
} else {
stack.push(inputOrder);
}
}
if (!stack.isEmpty()) {
int tryCount = stack.size();
while (tryCount-- > 0) {
if (stack.peek() == targetOrder) {
stack.pop();
targetOrder++;
} else {
System.out.println("Sad");
return;
}
}
}
System.out.println("Nice");
}
}
내가 풀었지만 맛이 없다. 뭔가 비효율적으로 푼 것 같은데, 당장은 모르겠으니 다음에 비슷한 문제로 다시 가져오도록 하겠다.