JiSoo's Devlog
[백준 / 파이썬] 11866번 요세푸스 문제0 본문
from collections import deque
n, k = map(int, input().split())
a = deque()
for i in range(n):
a.append(i)
l = []
print("<", end='')
while(a):
for i in range(k-1):
a.append(a.popleft())
print(a.popleft(), end='')
if a:
print(", ",end='')
print(">")
3번 제거하고 그 다음은 4부터 3번째 제거
큐 자료구조
k번째 완전히 제거되고 k-1번째까지의 숫자들은 제거된 후 다시 큐의 뒤로 돌아온다
deque 사용
deque는 앞뒤로 요소를 추가하고 삭제할 수 있는 자료구조
rotate()를 사용하면 오른쪽으로 이동
ex)
rotate(1) 하면 제일 뒤에 있던게 제일 앞으로 이동
rotate(-1) 하면 제일 앞에 있던게 제일 뒤으로 이동
popleft()는 제일 앞의 요소 제거 후 반환
3 제거하고 4 5 6 7 1 2
6 제거하고 7 1 2 4 5
2 제거하고 4 5 7 1
7 제거하고 1 4 5
5 제거하고 1 4
1 제거하고 4
4 제거
728x90
'코테준비' 카테고리의 다른 글
[백준 / 파이썬] 2798번 블랙잭 (1) | 2024.01.11 |
---|---|
[백준 / 파이썬] 11650번 좌표 정렬하기 (1) | 2024.01.10 |
[백준 / 파이썬] 7568번 덩치 (0) | 2024.01.10 |
[백준 / 파이썬] 1436번 영화감독 숌 (0) | 2024.01.10 |
[백준 / 파이썬] 2292번 벌집 (0) | 2024.01.10 |