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

처음에 <> 이 형식에 맞춰서 안썼다가 틀림
n, k = map(int, input().split())
listk = [i + 1 for i in range(n)]
resultList = []
index = 0
for i in range(n):
index = (index + k - 1) % len(listk)
resultList.append(listk.pop(index))
print("<" + ", ".join(map(str, resultList)) + ">")
인덱스로 찾아서 해당 인덱스를 찾아 pop하고 resultList에 추가했다.
index를 구하는게 포인트인데 k = 3일때 리스트에서는 3이 인덱스로 들어가면 세 번째가 아닌 4번째를 택한다. 따라서 k-1를 해줘야 인덱스 2 => 3번째가 됨
7, 3을 넣었을 때
순서대로 실행하면
index = (0 + 3 - 1) % 7 >>> 2
index = (2 + 3 - 1) % 6 >>> 4
index = (4 + 3 - 1) % 5 >>> 1
index = (1 + 3 - 1) % 4 >>> 3
index = (3 + 3 - 1) % 3 >>> 2
index = (2 + 3 - 1) % 2 >>> 0
index = (0 + 3 - 1) % 1 >>> 0
이 문제의 주인공 요세푸스는 전쟁에 참전해서 포위됐을때 집단 자살을 하려다가 쉽지않아서 서로 죽여주는 계획을 짰는데 요세푸스<<< 얘는 그냥 지 혼자 살려고 이 순간에 알고리즘 짜서 마지막에 혼자 살아남음 ㅇㅇ.. 뇌지컬이 죽여주는 사람으로 마지막에 살아서 혼자 항복함 ㅋㅋ..
해당 문제의 index를 구하는 건 외워두면 좋을 것 같다.