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

서연비님의 프로필 이미지
서연비

작성한 질문수

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

5. 공주구하기(큐)

[섹션5-공주구하기] 질문드립니다.

작성

·

310

·

수정됨

0

안녕하세요 선생님!

[섹션5-공주구하기] 문제 강의를 듣다가 궁금한점이 생겨서 질문드리게되었습니다.

먼저 코드를 작성해보았었는데, 저의 풀이 아이디어는

(1) 데크의 원소 개수가 1개가 될 때 까지 반복

(2) 데크를 왼쪽으로 k-1만큼 회전

(3) 데크의 가장 첫번째 원소를 제거

하도록 코드를 작성했는데요, 예제 입력 8과 3을 넣었는데 1이 출력됩니다.. ㅠㅠ 어디가 잘못되었는지 알려주실 수 있을까요..?

from collections import deque

n, k = map(int, input().split())

# 데크에 왕자 번호 생성
prince = deque()
for i in range(1, n+1):
    prince.append(i)
    
while len(prince) == 1:
    prince.rotate(-(k-1)) # 왼쪽으로 k-1만큼 회전
    prince.popleft() # 데크의 가장 첫번째 원소 제거
    
print(prince[0])

답변 1

0

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

안녕하세요^^

위에 코드의 while문 조건이 잘못된 것 같네요. while문이 반복하지 않는 조건입니다.

서연비님의 프로필 이미지
서연비

작성한 질문수

질문하기