[Python] 백준 1158 - 요세푸스 문제 풀이

Boo Sung Jun·2023년 1월 12일
0

알고리즘, SQL

목록 보기
65/70
post-thumbnail

Overview

BOJ 1158번 요세푸스 문제 Python 풀이
분류: Data Structure (자료구조)


문제 페이지

https://www.acmicpc.net/problem/1158


풀이 코드

from sys import stdin
from collections import deque
input = lambda: stdin.readline().rstrip()


if __name__ == "__main__":
    N, K = map(int, input().split())

    dq = deque(i for i in range(1, N + 1))
    ans = []
    while dq:
        dq.rotate(-K + 1)
        ans.append(dq.popleft())

    print('<' + ', '.join(map(str, ans)) + '>')

Deque 자료구조에 번호를 넣고 K씩 rotate 하여, 제거할 번호를 맨 앞으로 가져온다. 그리고 맨 앞 숫자를 꺼내어 ans 리스트에 넣어 답을 구한다.

0개의 댓글