자료구조 및 알고리즘/백준

[python] 1158. 요세푸스 문제

viamemine 2024. 6. 20. 15:36
728x90
반응형

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

 

풀이 

 

리스트 회전을 구현하는 법을 알면 어려운 문제는 아니였습니다.

# *** 으로 표시한 부분을 주의하여 구현하면 되는 문제입니다.

 

# pop 해야 할 원소를 list의 가장 마지막으로 옮기고 pop = O(1)
N, K = map(int, input().split())
arr = [i for i in range(1, N+1)]

idx = 0 # 제거될 사람의 인덱스 번호

ans = []
for i in range(N):
    idx = (idx + K-1) % len(arr) # ***
    ans.append(arr.pop(idx))

ans[0] = "<" + str(ans[0])
ans[-1] = str(ans[-1]) + ">"
print(*ans, sep= ', ')
728x90