[Python] BOJ 11866: 요세푸스 문제 0

Binsu·2021년 8월 15일
0

Algorithms

목록 보기
11/22

문제

요세푸스 문제 개념

풀이

import sys

N, K = map(int, sys.stdin.readline().split())

queue = [i for i in range(1, N+1)]  # 리스트 컴프리헨션으로 1부터 N까지의 순열 생성
Josephus = []

while queue:    # 큐에 원소가 없을 때까지 반복하는 반복문
    for _ in range(K-1):
        tmp = queue.pop(0)    # 첫번째 원소를 pop하여 tmp 변수에 지정
        queue.append(tmp)  # 큐의 맨 뒤에 tmp를 append함
    dead = queue.pop(0)    # K번째에 위치한 원소를 제거하고 dead에 지정
    Josephus.append(dead)	# Josephus 리스트에 dead를 넣어줌

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

0개의 댓글