[프로그래머스] 혼자 놀기의 달인 (파이썬) - Lv.2

서봉성·2022년 12월 28일
0

코딩테스트

목록 보기
6/27
post-thumbnail

문제

제한 사항

풀이 방법

  • 방문하지 않은 상자를 모두 방문한다.
  • 상자안에 존재하는 값의 index가 아직 방문하지 않았다면 계속 방문한다.
  • 한번에 방문한 값을 ans리스트에 넣는다.
  • ans의 길이가 1이라면 0을, 아니면 방문한 값이 제일 큰 2개의 곱을 반환해준다.

코드

from collections import deque

def solution(cards):
    visits=[0]*len(cards)
    ans=[]
    
    for i in range(len(cards)):
        if visits[i]==1:
            continue  
        dq=deque()
        cnt=0
        dq.append(i)
        while dq:
            index=dq.popleft()
            if visits[index]==1:
                break
            visits[index]=1
            cnt+=1
            dq.append(cards[index]-1)
            
        ans.append(cnt)
        
    if len(ans)==1:
        return 0
    else:
        ans.sort(reverse=True)
        return ans[0]*ans[1]
profile
OverStudy

0개의 댓글