반응형
문제
https://www.acmicpc.net/problem/2161
코드
from collections import deque
num = deque(i + 1 for i in range(int(input())))
ans = list()
while len(num) > 1:
ans.append(num.popleft())
num.append(num.popleft())
ans.append(num[0])
for i in ans:
print(i, end=' ')
설명
큐 구조를 사용해서 쉽게 해결할 수 있는 문제다.
우선 숫자 리스트를 큐로 생성해 주자.
그리고 정답을 담을 리스트도 하나 생성한다.
num의 개수가 2개 이상일 때,
ans에 num의 제일 처음에 있는 수를 추가하고,
그 다음 앞에 있는 수를 다시 뒤쪽으로 추가해 준다.
반복을 마치고 num에 남아있는 수 하나를 ans에 추가해 준다.
ans에 있는 수를 출력 형식에 맞추어 출력해 준다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 11728: 배열 합치기 (0) | 2023.05.09 |
---|---|
[파이썬, Python] 백준 7576: 토마토 (0) | 2023.05.08 |
[파이썬, Python] 백준 1850: 최대공약수 (0) | 2023.05.03 |
[파이썬, Python] 백준 15652: N과 M (4) (0) | 2023.05.02 |
[파이썬, Python] 백준 11279: 최대 힙 (0) | 2023.05.01 |