성장일기
[python] 백준 2164 - 카드 2 본문
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 |