인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

박준모님의 프로필 이미지
박준모

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 공주구하기(큐)

공주 구하기 코드 질문입니다.

해결된 질문

작성

·

164

0

from collections import deque
a = list(map(intinput().split()))
a = deque(a)

= int(input())

for _ in range(len(a)):
    if len(a) < k:
        if k == 2:
            res = a[0]
        else:
#1          res = a[1]
    else:
        a.remove(a[k-1])
        a.rotate(-(k-1))

print(res)
# rotate를 사용해서 코딩을 해봤는데, 강사님이 짜신 코드와
비교해봤을 때 제가 짠 코드는 비효율적인가요?

답변 2

0

박준모님의 프로필 이미지
박준모
질문자

친절한 답변 감사합니다.

0

김태원님의 프로필 이미지
김태원
지식공유자

rotate 함수를 쓰는 것도 좋은 아이디어 입니다. 

하지만 위 코드는 100점이 나오지 않는 코드입니다. a리스트에 1명의 왕자가 남을 때까지 시뮬레이션을 해야합니다.

8 6을 입력하면 1이 나와야 합니다.  

a.rotate(-(k-1))를 먼저하고 a.remove(a[0])를 하는 시뮬레이션을 a리스트에 원소가 하나 남을 때가지 하면 좋을 것 같습니다.

비슷한 원리라 효율성을 논하기 힘들지만 데이터가 엄청 커진다면 rotate가 미세하게 좀 더 좋지 않을 까 생각됩니다. 

박준모님의 프로필 이미지
박준모

작성한 질문수

질문하기