The Game of Death – 실버 4

2023. 1. 2. 17:07코딩 테스트 준비

728x90
반응형

기본적인 탐색을 요구하는 문제,

 

Flight Turbulence와 유사하다. 문제 이해를 잘못해서 시간을 날렸지만 동일한 숫자가 생겨 반복되는 경우를 감지하는 것을 생각조차 못했다. 문제 이해, 조건 탐색, 알고리즘 순으로 생각하고 문제를 푸는 것이 중요함을 깨닫는다.

 

또한 인덱스와 인덱스가 가르키는 숫자 문제가 탐색에 많이 나오니 cur = 시작 인덱스, 반복문에서 cur = list[cur] 테크닉을 일지말자.

 

for _ in range(int(input())):
    N = int(input())
    nums = [0] + [int(input()) for _ in range(N)]
    cur, K = 1, 0
    check = set([1])
    while True:
        K += 1
        cur = nums[cur]
        if cur == N:
            break
        if cur in check: # 동일한 숫자가 있어서 반복되는 경우를 막기 위함
            K = 0
            break
        check.add(cur)
    print(K)
728x90
반응형

'코딩 테스트 준비' 카테고리의 다른 글

전쟁 – 전투 실버 1  (0) 2023.01.02
dfs와 bfs – 실버2  (2) 2023.01.02
Bucket Brigade – 실버 4  (0) 2023.01.02
바닥 장식 – 실버 4  (0) 2023.01.02
Flight Turbulence – 실버 5  (0) 2023.01.02