반응형
https://www.acmicpc.net/problem/2161
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 |