백준 28066.타노스는 요세푸스가 밉다

이상·2024년 2월 29일

알고리즘

목록 보기
7/21

마지막으로 남는 청설모 번호 구하기 문제 !
큐는 이런 유형의 문제들이 많다. 남아있는 청설모가 K보다 작으면 첫번째말고 다 제외하라는 문제인데, for문으로 popleft를 해주며 len으로 숫자가 1이면 break를 걸어주면 된다.
k가 1이 될 경우는 답이 어떻게 나와야할지 고민했었는데 고려하지 않은 코드도 정답이 되는 걸 보니 1이 되는 경우를 생각하지 않으면 되는 것 같다. 어차피 1이면 제외되는 청설모가 없긴 하지만 ㅋㅋ

정답코드

from collections import deque
N,K=map(int,input().split())
squirrel=deque(range(1,N+1))

while len(squirrel) != 1:
    squirrel.rotate(-1)
    for i in range(K-1):
        squirrel.popleft()
        if len(squirrel) == 1:
            break
print(*squirrel)
profile
입니다.

0개의 댓글