๋ฌธ์
์์ธํธ์ค ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
1๋ฒ๋ถํฐ N๋ฒ๊น์ง N๋ช ์ ์ฌ๋์ด ์์ ์ด๋ฃจ๋ฉด์ ์์์๊ณ , ์์ ์ ์ K(≤ N)๊ฐ ์ฃผ์ด์ง๋ค. ์ด์ ์์๋๋ก K๋ฒ์งธ ์ฌ๋์ ์ ๊ฑฐํ๋ค. ํ ์ฌ๋์ด ์ ๊ฑฐ๋๋ฉด ๋จ์ ์ฌ๋๋ค๋ก ์ด๋ฃจ์ด์ง ์์ ๋ฐ๋ผ ์ด ๊ณผ์ ์ ๊ณ์ํด ๋๊ฐ๋ค. ์ด ๊ณผ์ ์ N๋ช ์ ์ฌ๋์ด ๋ชจ๋ ์ ๊ฑฐ๋ ๋๊น์ง ๊ณ์๋๋ค. ์์์ ์ฌ๋๋ค์ด ์ ๊ฑฐ๋๋ ์์๋ฅผ (N, K)-์์ธํธ์ค ์์ด์ด๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด (7, 3)-์์ธํธ์ค ์์ด์ <3, 6, 2, 7, 5, 1, 4>์ด๋ค.
N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ฉด (N, K)-์์ธํธ์ค ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ N ≤ 1,000)
์ถ๋ ฅ
์์ ์ ๊ฐ์ด ์์ธํธ์ค ์์ด์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ/์ถ๋ ฅ
7 3 - > <3, 6, 2, 7, 5, 1, 4>
ํด์ค ์ฝ๋
n,k = map(int,input().split())
array = [i for i in range(1,n+1)]
key = 0
temp = k - 1
order = []
while array:
key = (key + temp) % len(array)
order.append(array.pop(key))
print('<'+', '.join(map(str,order))+'>')
๋ถ์ > ์ฐ์ ์ด ๋ฌธ์ ๋ k๋ฒ์งธ์ ํด๋นํ๋ ์์๊ฐ pop๋๋ฉด์ ์ ์ ์ค์ด๋๋ ๋ฐฐ์ด ๊ธฐ์ค ๋ช ๋ฒ์งธ ์์๊ฐ pop์ด ๋๋์ง๋ฅผ ๊ณ ๋ คํ์ฌ ํ์ดํ์๋ค. ๊ทธ์ค์์ temp = k - 1์ธ ์ด์ ๋ ๊ฐ์ด ์๋ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์ดํด ๋๊ฐ๊ธฐ ์ํจ์ด๋ค. pop๋๋ ๊ฐ์ ์ธ๋ฑ์ค์ธ key ๊ฐ์ ์ด์ key ๊ฐ๊ณผ temp ๋ฅผ ๋ํ ๊ฐ์ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋๋ ๋๋จธ์ง๊ฐ ๋๋ฉฐ, pop๋ ์์๋ ์๋ก์ด oreder ๋ฐฐ์ด์ appendํ๋ค.
์๋ก ์๊ฒ ๋ ์
print('<'+', '.join(map(str,order))+'>')
join ํจ์๋ ๋งค๊ฐ๋ณ์๋ก ๋ค์ด์จ ๋ฆฌ์คํธ์ ์๋ ์์ ํ๋ํ๋๋ฅผ ํฉ์ณ์ ํ๋์ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด ๋ฐํํ๋ ํจ์์ด๋ผ๊ณ ํ๋ค. ๊ทธ๋ฌ๊ธฐ์ join ํจ์์ ์ค์ ๋ชจ์์ ๊ตฌ๋ถ์'.join(๋ฆฌ์คํธ) ๋ผ๊ณ ํ ์ ์๋ค.
'Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋๋ฌด ์กฐ๊ฐ (#2947) (0) | 2022.04.08 |
---|---|
[BOJ] ๋ฐฉ ๋ฒํธ (#1475) (0) | 2022.04.08 |
[BOJ] ์๊ฐ ๊ธธ์ ๊ฑด๋๊ฐ ์ด์ 1 (#14467) (0) | 2022.04.03 |
[BOJ] ํ๋ฆฐํฐ ํ (#1966) (0) | 2022.04.03 |
[BOJ] ์๋ผํ ์คํ ๋ค์ค์ ์ฒด (#2960) (0) | 2022.04.03 |