728x90
๐ ๋ฐฑ์ค 1158 - ์์ธํธ์ค ๋ฌธ์
๐ก ๋์ ํ์ด
์์ธํธ์ค ๋ฌธ์ ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ(linkedList)
๋ก ํ ์ ์๋ ์ ํ์ ์ธ ๋ฌธ์ ์ด์ง๋ง ํ(queue)
๋ฅผ ์ฌ์ฉํด์๋ ํ ์ ์๋ค.
- k๋ฒ์งธ์ ์ฌ๋๋ค์ด ๊ณ์ํด์ ์ ๊ฑฐ๋์ด์ผ ํ๋ฏ๋ก cnt๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
len(arr)
์ด 0์ด๋ ๋๊น์ง ์ ์ผ ์์ ์๋ ์๊ฐ ์ ์ผ ๋ค๋ก ์ด๋ํ๋ฉด์ ์ํํ๋ค.- ํ๋ฒ ์ํ ํ ๋๋ง๋ค
cnt
๊ฐ 1์ฉ ๋์ ๋๋ค. - ๋ง์ฝ,
cnt
๊ฐk-1
์ ๊ฐ๋ค๋ฉด ๋ค์ ์ฌ๋์ด ์ ๊ฑฐ๋์ผํ๋ฏ๋ก ํด๋น ์๋ฅผstack
์ ์ถ๊ฐํ๋ค.(์ธ๋ฑ์ค๋ 0๋ถํฐ ์ธ๋ฏ๋กk-1
๋ก ์ ์ธํ๋ค.) stack
์ผ๋ก ๋น ์ก๋ค๋ฉด ๋ค์ 0๋ถํฐ ์นด์ดํธํ๋ค.
๊ทธ๋ด์ธํ ๋ก์ง์ด๋ค. ํ์ง๋ง, ์ด๋๋ก ์ ์ถํ๋ฉด ์คํ์๊ฐ์ด ๋น์ฝ์ ์ผ๋ก ๋๊ฒ ๋์จ๋ค.
๊ทธ๋์ ๋ค์ ์ ๊ฑฐํ ์ฌ๋์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์ ๋ (k-1) mod N๋ฒ
ํฌ์ธํฐ๋ฅผ ๋์ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์คํ์๊ฐ์ด ๋จ์ถ๋๋ค.
# ๋์ ์ฝ๋(cnt)
import sys
from collections import deque
input = sys.stdin.readline
n, k = map(int, input().split())
arr = deque(range(1, n + 1))
stack = []
cnt = 0
while arr:
if cnt == k-1:
stack.append(arr.popleft())
cnt = 0
else:
arr.append(arr.popleft())
cnt += 1
print(f"<{', '.join(map(str, stack))}>")
# ๋ค๋ฅธ์ฌ๋์ ์ฝ๋(k-1 mod N)
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
arr = list(range(1, n + 1))
stack = []
cnt = 0
while arr:
cnt = (cnt+(k-1)) % len(arr)
stack.append(arr.pop(cnt))
print(f"<{', '.join(map(str, stack))}>")
๋ฐ์ํ
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 10828 - ์คํ (0) | 2021.05.04 |
---|---|
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 10773 - ์ ๋ก (0) | 2021.05.04 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 2164 - ์นด๋2 (0) | 2021.05.04 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 10250 - ACM ํธํ (0) | 2021.05.01 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 14467 - ์๊ฐ ๊ธธ์ ๊ฑด๋๊ฐ ์ด์ 1 (0) | 2021.04.28 |
๋๊ธ