์๊ณ ๋ฆฌ์ฆ/๋ฐฑ์ค ํ์ด
BOJ 11866: ์์ธํธ์ค ๋ฌธ์ 0 (Python)
adorableco
2023. 9. 19. 15:54
๋ฐ์ํ
๋ฌธ์
https://www.acmicpc.net/problem/11866
11866๋ฒ: ์์ธํธ์ค ๋ฌธ์ 0
์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
์ฝ๋
N,K = map(int,input().split())
que = [0] *(N+1)
rear = 0
front = 0
no = 0
temp = 0
def deque()-> int:
global front
global no
x = que[front]
front += 1
no -= 1
if front == N:
front = 0
return x
def enque(y):
global rear
global no
que[rear] = y
rear += 1
no += 1
if rear == N:
rear = 0
for i in range(N):
enque(i+1)
print('<', end='')
while no > 1:
temp = (K-1)%no
for i in range(temp):
array[i] = deque()
for i in range(temp):
enque(array[i])
print(f'{deque()}, ',end='')
print(f'{deque()}> ')
ํ์ด
que : 1 ๋ถํฐ N ๊น์ง์ ์ซ์๋ฅผ ๋ด์ ํ ๋ฐฐ์ด
rear : ํ ๋ฐฐ์ด์ ๋ง์ง๋ง ์์ ์ธ๋ฑ์ค์ ๋ค์ ์ธ๋ฑ์ค
front : ํ ๋ฐฐ์ด์ ์ฒซ ์์ ์ธ๋ฑ์ค
no : ํ ๋ฐฐ์ด์ ๋ค์ด์๋ ์์ ๊ฐ์
ํ ๋ฐฐ์ด์ front ๋ถํฐ (K-1)%no ๋งํผ deque ํ๊ณ ๋ค์ enque ๋ฅผ ํ๋ฉด ํ ๋ฐฐ์ด์ front ์๋ ์ด๋ฒ ์ฐจ๋ก์ ๋น ์ ธ์ผํ ์์๊ฐ ์จ๋ค.
์ด ์ํ์์ deque ๋ก ๊ฐ์ ๋ฐ์์ ์ถ๋ ฅํ๋ฉด ๋๋ค.
๋ฐ์ํ