하루살이 개발자

[BaekJoon 1158번] 요세푸스 문제(Python) 본문

코딩테스트

[BaekJoon 1158번] 요세푸스 문제(Python)

하루살이 2022. 1. 4. 20:52

코딩테스트 연습 1일차

 

요세푸스 문제입니다.

 

문제 링크 : https://www.acmicpc.net/problem/1158

 

1158번: 요세푸스 문제

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)

www.acmicpc.net

 

Solution

n,k = map(int, input().split())
arr = [] #처음 원에 앉아있는 사람들
answer = [] #제거된 사람들

for i in range(n):
    arr.append(i+1)

num = 0 #제거할 사람 인덱스 번호

while len(arr)>0:
    num = (num+(k-1)) % len(arr)
    popElement = arr.pop(num)
    answer.append(str(popElement))

print("<%s>" %(", ".join(answer)))