[Python - ๋ฐฑ์ค€ 11866] ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ 0

2021. 1. 6. 19:51ใ†๐Ÿ“š Algorithm/๐Ÿ’ช๐Ÿป Python ๋ฌธ์ œ ํ’€์ด

๋ฐ˜์‘ํ˜•
 

11866๋ฒˆ: ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ 0

์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

๋ฌธ์ œ ์„ค๋ช…

์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

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)

์ถœ๋ ฅํ˜•์‹

์˜ˆ์ œ์™€ ๊ฐ™์ด ์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

ํ’€์ด ๊ณผ์ •

3๋ฒˆ์— ์‹œ๋„ ๋์— ํ•ด๊ฒฐํ–ˆ๋˜ ๋ฌธ์ œ์˜€๋‹ค. ๊ทœ์น™์„ ์ฐพ๋Š”๊ฒŒ ์€๊ทผ ๊นŒ๋‹ค๋กœ์šด ๋ฌธ์ œ์˜€๊ณ , ๊ทœ์น™์„ ์ฐพ์€ ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ ๋งˆ์ง€๋ง‰ 5,1,4 ๋ถ€๋ถ„์—์„œ ์ž๊พธ 5,4,1๋กœ ์ถœ๋ ฅ๋˜์–ด ์• ๋ฅผ ๋จน์—ˆ๋‹ค. ๋‹ค์‹œ ์ฐจ๊ทผ์ฐจ๊ทผ ์ œ๊ฑฐํ•ด์•ผ ํ•  ์›์†Œ์˜ ๋ฒˆํ˜ธ๋ฅผ ์ฐพ๋Š” ๊ฒƒ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด์•˜๋‹ค. ์ˆœํ™˜ ํ์— ๋Œ€ํ•œ ๋ฌธ์ œ์˜€์ง€๋งŒ deque๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  list์™€ ์ œ๊ฑฐํ•ด์•ผํ•  ์›์†Œ์˜ ๋ฒˆํ˜ธ์˜ ๊ทœ์น™์„ ์ฐพ์œผ๋ฉฐ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

n, k = map(int, input().split())
q = [i for i in range(1,n+1)]
print("<",end='')
i = 0

while len(q) > 1:
    i = i+k
    if i > len(q):
        i = i % len(q)
        if i == 0 :
            i = i+ len(q)
    i = i-1
    print(str(q.pop(i)), end=", ")

print("{}>".format(str(q.pop())))

 

๋ฐ˜์‘ํ˜•