[백준] 2668 - 숫자고르기 (DFS)

김영민·2024년 7월 9일
0

코딩테스트

목록 보기
6/32


코드

#숫자 고르기

N = int(input())
numbers = []
for _ in range(N):
    numbers.append(int(input()))

numbers = [0] + numbers


def DFS(num,i):

    visited[num] = True
    data = numbers[num]
    if visited[data] == False:
        DFS(data,i)
    elif visited[data] == True and data == i:
        result.append(data)
    

result = []
for i in range(1,N+1):
    visited = [False]*(N+1)
    DFS(i,i)


print(len(result))
result.sort()

for n in result:
    print(n)

풀이

  • 방문을 했으며, 그 값이 시작점과 같은 것을 찾아내는 것에서 아이디어가 중요하다.

0개의 댓글