성장일기

[python] 백준 2164 - 카드 2 본문

알고리즘 문제

[python] 백준 2164 - 카드 2

김몽몽 2022. 1. 5. 10:00

1부터 N까지 번호가 있고

1번 카드가 제일 위, N번 카드가 가장 아래인 상태

 

1. 제일 위의 카드를 버림

2. 버린 후 제일 위에 있는 카드를 가장 아래로 옮김

3. 이를 반복하여 마지막 남는 카드 구하기

 

import sys
input=sys.stdin.readline

from collections import deque
d=deque()  #데크 사용

num=int(input().rstrip())
for i in range(1,num+1):
    d.append(i)  #1부터 입력 숫자까지 데크에 추가

while len(d)>1:  #데크 길이가 1보다 클 경우
    d.popleft()  #가장 왼쪽(윗쪽) 지우기
    d.append(d.popleft())  #가장 왼쪽을 오른쪽으로 옮기기
print(*d)  #그냥 d를 출력할 경우 deque([1]) 이런 형식으로 출력됨

'알고리즘 문제' 카테고리의 다른 글

[python] 백준 10610 - 30  (0) 2022.01.07
[python] 백준 1026 - 보물  (0) 2022.01.06
[python] 백준 7785 - 회사에 있는 사람  (0) 2022.01.01
[python] 백준 1735 - 분수 합  (0) 2021.12.31
[python] 백준 14490 - 백대열  (0) 2021.12.30