
import sys
N,K = map(int,sys.stdin.readline().split())
person= [i+1 for i in range(N)]
people = []
josephus = 0
while person:
josephus = (josephus + K - 1) % len(person)
people.append(person.pop(josephus))
print(people)
예시 결과 : <3, 6, 2, 7, 5, 1, 4>
즉, 출력을 이렇게 <...> 해야 했었다..
위 코드는 [...] 이런 식으로 리스트형 타입이기 때문에 틀렸다
import sys
N,K = map(int,sys.stdin.readline().split())
person= [i+1 for i in range(N)]
people = []
josephus = 0
while person:
josephus = (josephus + K - 1) % len(person)
people.append(person.pop(josephus))
print("<" + ", ".join(map(str, people)) + ">")
파이썬에는 <> 이렇게 출력해주는 타입이 없기 때문에
join(map) 을 활용하여 강제로 <> 를 붙여주었다.
그래서 성공..
join + 문자열 변환 잘 기억하자!~