반응형
def dfs(cards, cur, visited, count):
if not visited[cur]:
visited[cur] = count
return dfs(cards, cards[cur] - 1, visited, count)
return
def solution(cards):
visited = [0] * len(cards)
count = 1
for c in cards:
if not visited[c - 1]:
dfs(cards, c - 1, visited, count)
count += 1
check = {}
for v in visited:
check[v] = check.get(v, 0) + 1
ans = sorted(list(check.values()), reverse=True)
return ans[0] * ans[1] if len(ans) > 1 else 0
dfs
1. dfs로 박스 탐색
2. visited 카운팅
3. value기준 내림차순 정렬 후 최대값 두개 곱 리턴 ( 전부 한 박스 안에 있는 경우 0 리턴)