문제 설명 및 제한사항
아이디어 및 해결 방법
코드
def compsize(u, A, visited):
visited[u] = True
if visited[A[u]]:
return 1
return compsize(A[u], A, visited) + 1
def solution(cards):
visited = [True] + [False] * len(cards)
cards = [-1] + cards
sizes = []
for u, v in enumerate(cards):
if visited[u]:
continue
sizes.append(compsize(u, cards, visited))
sizes.sort()
return 0 if len(sizes) == 1 else sizes[-2] * sizes[-1]
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges