시간&메모리 제한
문제
입력&출력
문제 풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Back_17204 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int [] arr = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
int Now = 0,ans=0;
boolean flag=false;
boolean visited[] = new boolean[N];
while(true) {
// 끝난 경우
if(arr[Now]==K) {
ans++;
break;
}
//반복 순환 방지
if(visited[arr[Now]]) {
flag = true;
break;
}
else {
Now = arr[Now];
visited[Now] = true;
ans++;
}
}
if(flag==true) {
System.out.println(-1);
}else {
System.out.println(ans);
}
}
}
- 죽음의 게임은 첫 위치에서 부터 다음 위치로 따라가면서, 보성이가 벌칙을 받게 하기 위해서 카운트를 세줍니다.
- while 문에서 3가지의 조건으로 나뉩니다
- 보성이를 찾은 경우 , 반복적으로 찾게 되는 경우 , 찾고 있는 과정
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_7562 나이트의 이동(자바) / 그래프 탐색 (0) | 2021.07.15 |
---|---|
백준_2644 촌수계산(자바) / 그래프 탐색 (0) | 2021.07.14 |
백준_5545 최고의 피자(자바) / 그리디 알고리즘 (0) | 2021.07.12 |
백준_18310 안테나(자바) / 그리디 알고리즘 (0) | 2021.07.11 |
백준_19941 햄버거 분배(자바) / 그리디 알고리즘 (0) | 2021.07.10 |