diff --git "a/lkhyun/202508/02 BOJ G3 \354\230\244\353\223\261\355\201\260\354\210\230.md" "b/lkhyun/202508/02 BOJ G3 \354\230\244\353\223\261\355\201\260\354\210\230.md" new file mode 100644 index 00000000..54d6f4c0 --- /dev/null +++ "b/lkhyun/202508/02 BOJ G3 \354\230\244\353\223\261\355\201\260\354\210\230.md" @@ -0,0 +1,46 @@ +```java +import java.util.*; +import java.io.*; + +public class Main { + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + static StringTokenizer st; + static int[] arr; + static Map count; + static int[] NGF; + + public static void main(String[] args) throws Exception { + int N = Integer.parseInt(br.readLine()); + arr = new int[N]; + count = new HashMap<>(); + st = new StringTokenizer(br.readLine()); + for (int i = 0; i < N; i++) { + arr[i] = Integer.parseInt(st.nextToken()); + count.put(arr[i], count.getOrDefault(arr[i], 0)+1); + } + if(N == 1){ + bw.write("-1"); + bw.close(); + return; + } + + NGF = new int[N]; + ArrayDeque stk = new ArrayDeque<>(); + stk.push(0); + for (int i = 1; i < N; i++) { + while(!stk.isEmpty() && count.get(arr[stk.peek()])