[白俊11866号-Python Python]ジョセフス
3332 ワード
白駿11866号-ジョセフス
Solution条件:1番からN番まで、N人は1つの円に座って、正数K(≦N).
今は順番にK人目を除いています.一人が取り除かれると、残りの人からなる円に沿ってこの過程が続きます.この過程はN人全員がクリアされるまで 続く.
問題を見るとappendとpopを使って問題を解決できると思います.
rotateで簡単に解けると思うのでrotateを使います.
問題を解決してから探してみると、リストを使って解く時間がもっと短いようです.
N個の数の前にrotateを新しく作成したリストに追加し、K個の数の前にrotateを新しく作成したリストに追加します.
結果リストを作成し、出力条件に基づいて出力します.
Code
出力条件に悩んだ.
printの機能をもっと熟知すべきようです.
Solution
今は順番にK人目を除いています.一人が取り除かれると、残りの人からなる円に沿ってこの過程が続きます.この過程はN人全員がクリアされるまで
問題を見るとappendとpopを使って問題を解決できると思います.
rotateで簡単に解けると思うのでrotateを使います.
問題を解決してから探してみると、リストを使って解く時間がもっと短いようです.
N個の数の前にrotateを新しく作成したリストに追加し、K個の数の前にrotateを新しく作成したリストに追加します.
結果リストを作成し、出力条件に基づいて出力します.
Code
from collections import deque
N, K = map(int,input().split())
deq = deque(i + 1 for i in range(N))
result = []
for i in range(N):
deq.rotate(-K + 1)
result.append(deq.popleft())
print('<',end="")
print(*result,sep=', ',end="")
print('>')
Feedback出力条件に悩んだ.
printの機能をもっと熟知すべきようです.
Reference
この問題について([白俊11866号-Python Python]ジョセフス), 我々は、より多くの情報をここで見つけました https://velog.io/@oldrock1999/백준-11866번-Python-파이썬-요세푸스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol