Notice
Recent Posts
Recent Comments
Link
DevKim
[Python] 백준 #9466 텀 프로젝트 본문
728x90
[코드]
import sys
N=int(sys.stdin.readline().rstrip())
for i in range(N):
n=int(input())
List=[0]+list(map(int,sys.stdin.readline().rstrip().split()))
visited=[0]*(n+1)
group=1
for j in range(1,n+1):
if visited[j]==0:
while visited[j]==0:
visited[j]=group
j=List[j]
while visited[j]==group: #거꾸로 돌아가면서 같은 그룹애들이면 -1로 체크
visited[j]=-1
j=List[j]
group+=1
cnt=0
for i in visited:
if i!=0 and i!=-1:
cnt+=1
print(cnt)
[시간/메모리]
46172KB / 4204 ms
[etc]
추가로.. c언어로 알고리즘을 배울 때, 사이클을 찾기위해 union find 를 배운적이 있다.
재귀함수를 이용해서 구하는건데.. 파이썬에서는 왜인지모르게 효율적이지 못하게 느껴진다
728x90
'알고리즘 PS' 카테고리의 다른 글
[Python] 2021 카카오 기출 - 신규 아이디 추천 (0) | 2021.02.02 |
---|---|
[Python] 카카오 기출 - 크레인 인형뽑기 게임 (0) | 2021.02.02 |
[Python] 백준 #1707 이분 그래프 (+) 여러가지 반례들 (0) | 2021.01.16 |
[Python] 백준 #4963 섬의 개수 (0) | 2021.01.16 |
[Python] 백준 #2667 단지번호붙이기 (0) | 2021.01.16 |
Comments