728x90
https://www.acmicpc.net/problem/11866
import sys
n, k = map(int, sys.stdin.readline().split())
q = list(range(1, n+1)) #1
idx, res, length = 0, [], n
while q:
idx += (k-1) #2
res.append(q.pop(idx % length)) #3
idx = idx % length #4
length -= 1 #5
ans = ', '.join(map(str, res))
print(f'<{ans}>')
#1 : 리스트 q에 1부터 n까지의 숫자 삽입
#2 : 인덱스의 값 추가
#3 : 인덱스에 해당하는 값 삭제
#4 : 원형 큐에 맞게 인덱스 조정
#5 : 길이 조정(len(q)를 사용하면 에러가 발생한다)
큐가 원형임을 이용하는 문제였다. 앞과 뒤에서 삽입, 삭제가 가능한 큐의 특징을 원으로 표현한건데 처음에 떠올리지 못했다. 다음 큐 관련 문제를 풀때 참고해야겠다.
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 1929 파이썬(python) : 소수 구하기 - (에라토스테네스의 체) (0) | 2022.07.05 |
---|---|
[백준] 1654 파이썬(python) : 랜선 자르기 - (★) (0) | 2022.07.05 |
[백준] 11650 파이썬(python) : 좌표 정렬하기 (0) | 2022.07.04 |
[백준] 11050 파이썬(python) : 이항 계수 1 (0) | 2022.07.04 |
[백준] 10866 파이썬(python) : 덱 (0) | 2022.07.04 |