[백준] 1158: 요세푸스 문제 (Python)

JiKwang Jeong·2021년 10월 10일
0
post-custom-banner

문제📖

풀이🙏

  • 요세푸스 순열은 처음 k번째 값을 꺼내고 다음은 그 위치에서 k번째 떨어진 값을 제거하면서 원에서 사람들이 제거되는 순서를 나타내는 수열이다.
  • 원형으로 이루어 앉아있으므로 num을 초기화 해줄 때 %len(data)을 하여 data의 크기 보다 큰 경우가 없도록 한다.

코드💻

n, k = map(int, input().split())
data = []
result = []
num = 0
for i in range(1, n+1):
    data.append(i)

for i in range(n):
    num = (num+k-1)%len(data)
    result.append(str(data.pop(num)))

print("<", ", ".join(result), ">", sep="")

profile
기억보다 기록, 난리보다 정리
post-custom-banner

0개의 댓글