[Python Coding]伯俊2164カード.


質問する



入力と出力



実行コード

from collections import deque
q = deque()

n = int(input())

for i in range(n): # 1~n까지 카드 생성
    q.append(i+1)

for j in range(0, n):
    if len(q) != 1:
        q.popleft()
        a = q[0]
        q.append(a)
        q.popleft()
        
print(q[0]) # 마지막 카드 출력

に答える

dequeライブラリを使用する
  • キュー
  • を実装する.
  • 最初のfor文は1〜nのカードを生成する.
  • 2 2 2番目のfor文では、カードが1枚残る前に繰り返し文が実行されます.
    (繰り返し:1枚目のカードを削除し、最後に1枚目のカードを追加(コピー)し、前のカード(コピーしたカード)2479182を削除する
    [問題リンク]
    https://www.acmicpc.net/problem/2164