알고리즘

[백준, 자바, 17204번] 죽음의 게임

hminor 2024. 10. 11. 15:28
반응형

풀이

  • 따로 Stack이나 Deque를 사용하지 않아도 될 것 같은 문제라서
  • 간단하게 해결했음
  • 이유는, 어차피 한 사람이 지목할 수 있는 건 한 사람이기에
  • 굳이 배열을 만들 필요가 없다고 판단
  • 이후 다른 코드는 따로 풀이하지 않아도 간단하게 해결할 수 있기에 풀이는 생략!

 

import java.io.*;
import java.util.Arrays;
public class _17204 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int[] NK = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        int[] li = new int[NK[0]];
        boolean[] visit = new boolean[NK[0]];
        int result = -1;
        int cnt = 0;

        for (int i=0; i<NK[0]; i++) li[i] = Integer.parseInt(br.readLine());

        int now = 0;
        while (true) {
            if (visit[now]) break;
            else {
                visit[now] = true;
                now = li[now];
                cnt++;
                if (now==NK[1]) {
                    result = cnt;
                    break;
                }
            }
        }
        System.out.println(result);

    }
}