๊ตณ์ด ์ฌ์ฉํ์๋ฉด ํ..? ๋ฆฌ์คํธ ์ฌ์ฉํ์ฌ ์ด๋ค index์ ๊ฐ์ ์ฐจ๋ก๋๋ก ์ง์ธ์ง ๊ตฌํ๋๊ฒ
์ญ์ ํ ์ธ๋ฑ์ค ๊ฐ์ 0์ผ๋ก ์ด๊ธฐํ ํ ๋ค, K - 1 ์ ๋ํ ์ธ๋ฑ์ค ๊ฐ์ ์ญ์ ํ๋ค. ์ญ์ ํ๋ ค๋ ์ธ๋ฑ์ค ๊ฐ์ด ์ ์ฒด ๋ฆฌ์คํธ์ ์ธ๋ฑ์ค ๊ฐ์ ์ด๊ณผํ๋ฉด
(์ญ์ ํ๋ ค๋ ์ธ๋ฑ์ค) % (ํ์ฌ ๋ฆฌ์คํธ์ ๊ธธ์ด) ๋ฅผ ์ฌ์ฉํ์ฌ ์ญ์ ํ ์ธ๋ฑ์ค ๊ฐ์ ๋ค์ ์ ํ๋ค.
์ข ์ด์ ํ ๋ฒ ์ฐ๋ ๊ฒ์ ์ถ์ฒ.
N, K = map(int, input().split())
origin = [i + 1 for i in range(N)]
result = []
pop_index = 0
for i in range(N):
pop_index = (pop_index + (K - 1)) % len(origin)
result.append(origin.pop(pop_index))
print(str(result).replace('[', '<').replace(']', '>'))
O(n)
์ถ๋ ฅํ ๋ ํ์ด์ฌ ๋ฆฌ์คํธ๋ [ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฑ์ค ์ฌ์ดํธ์์๋ < ๊ธฐํธ๋ฅผ ์๊ตฌํ์.
.replace ์ฌ์ฉ
์ถ๋ ฅ ํ์ ์ ๊ฒฝ์ฐ๊ธฐ, ๊ฐ์ ๋ฌธ์ ๋ฅผ ํผ ๋ค๋ฅธ ์ฌ๋๋ค ํ์ด๋ฅผ ๋ณด๋ ๋ฆฌ์คํธ๋ก ํ ๋ ์๊ฐ์ด๊ณผ ๋๋ค๊ณ deque๋ฅผ ํ์ด์ ์ฐ๋๊ฑธ ๋ณด์์.
ํ ๊ด๋ จ๋ ๋ฌธ์ ๋ ๊ทธ๋ฅ deque๋ถํฐ ์ฐ๊ณ ๋ณด๋ ์ฌ๋๋ค๋ ์๋๋ฐ ์๋ + ์๋ฐฉํฅ ์ฝ์ ์ญ์ ๊ฐ ์ฝ๊ธด ํ์ง๋ง ์ข ๋ ์ด๋ ค์ด ๋ฌธ์ ์์๋ ํ์ํ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ธฐ์ด ๋์ด๋ ๋ฌธ์ ๋ค์ ๊ตณ์ด ์ถ์์.
์๊ฐ ์ด๊ณผ๊ฐ ๋๋ฉด deque๋ฅผ ๊ณ ๋ คํด๋ณด์.