본문 바로가기
Problem Solving/BOJ

[BOJ][Python]2161번 풀이

by NoiB 2022. 6. 14.
반응형

https://www.acmicpc.net/problem/2161

 

2161번: 카드1

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net

from collections import deque
n = int(input())
d = deque([i for i in range(1,n+1)])
while len(d)>1:
    print(d.popleft())
    d.append(d.popleft())
print(d.popleft())

예전에 이런 비슷한 문제를 풀었던 기억이 있는데요. 그 때는 데크를 쓸 줄 몰라서 그냥 리스트로 어찌어찌 풀었던 것 같습니다. 방법 자체는 크게 다르지 않구요. 반복 횟수 설정만 잘하신다면 for문으로도 풀릴겁니다. len(d)>1로 조건을 설정한 이유는 d가 텅 빌 때 까지 반복문으로 돌리면 제가 짜놓은 반복문 특성상 아무것도 없어서 append할 때 에러가 나기 때문에 그렇습니다. 따라서 1개만 남았을 때 멈춘 다음 따로 남은 걸 출력해주는 거죠. 

반응형

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ][Python]1697번 풀이  (0) 2022.06.16
[BOJ][Python]11724번 풀이  (0) 2022.06.16
[BOJ][Python]11279번 풀이  (0) 2022.06.14
[BOJ][Python]9372번 풀이  (0) 2022.06.13