1. 문제와 예제
2. 코드
import sys
input = sys.stdin.readline
# 입력 받기
N, K = map(int, input().split())
# ex. N = 7 -> queue = [1, 2, 3, 4, 5, 6, 7]
queue = [(i+1) for i in range(N)]
res = []
i = 0
while queue:
i += (K-1)
while (i >= len(queue)):
i -= len(queue)
res.append(str(queue.pop(i)))
# 결과 출력
print('<' + ', '.join(res) + '>')
3. 풀이
예제를 통해 생각 과정을 적고 코드로 구현했다.
4. 추가
찾아보니 deque를 활용해서 푸는 방법도 있었다. 아래 게시글을 참고했다.
https://develop247.tistory.com/358
from collections import deque
import sys
input = sys.stdin.readline
# 입력 받기
N, K = map(int, input().split())
deq = deque([(i+1) for i in range(N)])
res = []
while deq:
# K-1번째 노드까지 deq 맨 뒤로 이동시킴
for _ in range(K-1):
deq.append(deq.popleft())
# K번째 노드 삭제 후 res에 추가
res.append(str(deq.popleft()))
# 결과 출력
print('<' + ', '.join(res) + '>')
'백준' 카테고리의 다른 글
[백준] 1920번 파이썬 (수 찾기) (0) | 2024.03.20 |
---|---|
[백준] 1018번 파이썬 (체스판 다시 칠하기) (0) | 2024.03.18 |
[백준] 11651번 파이썬 (좌표 정렬하기 2) (0) | 2024.03.18 |
[백준] 11650번 파이썬 (좌표 정렬하기) (0) | 2024.03.17 |
[백준] 10814번 파이썬 (나이순 정렬) (0) | 2024.03.17 |