๋ฐฑ์ค€/Python

[Python] ๋ฐฑ์ค€ 11866๋ฒˆ

๋‹ค๋ธ”๐Ÿ’ 2022. 7. 4. 02:41

11866๋ฒˆ. ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ 0 (silver 4)

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

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)

 

์ถœ๋ ฅ

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

 

์˜ˆ์ œ ์ž…๋ ฅ1

7 3

์˜ˆ์ œ ์ถœ๋ ฅ1

<3, 6, 2, 7, 5, 1, 4>

 

 

1๋ฒˆ๋ถ€ํ„ฐ n๋ฒˆ๊นŒ์ง€์˜ ์‚ฌ๋žŒ์ด ์›์„ ๋‘๋ฅด๊ณ  ์•‰์•˜์„ ๋•Œ, ์ˆœ์„œ๋Œ€๋กœ k๋ฒˆ์งธ ์‚ฌ๋žŒ์„ ์ œ๊ฑฐํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ n๊ณผ k๋ฅผ map์„ ์‚ฌ์šฉํ•ด์„œ ๋‘ ๋ณ€์ˆ˜๋ฅผ ๊ณต๋ฐฑ์„ ๋‘๊ณ  ์ž…๋ ฅ๋ฐ›์€ ๋‹ค์Œ ๊ฐ๊ฐ ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค.

๊ทธ ๋‹ค์Œ 1๋ฒˆ๋ถ€ํ„ฐ n๋ฒˆ๊นŒ์ง€๋ฅผ arr ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค. 

 

์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ print๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ '<'๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ๊ณ , i์—๋Š” 0์„ ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค. 

์—ฌ๊ธฐ์„œ i๋Š” ์ œ๊ฑฐํ•˜๋Š” ์›์†Œ์˜ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•œ๋‹ค.

while๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ arr ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๊ฐ€ 1๋ณด๋‹ค ํด ๋•Œ, i์—๋Š” i+k ๊ฐ’(์ˆœ์„œ๋Œ€๋กœ k๋ฒˆ์งธ ์‚ฌ๋žŒ ์ œ๊ฑฐ)์„ ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  if๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ i๊ฐ€ arr๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ์›์˜ ํ•œ๋ฐ”ํ€ด๋ฅผ ๋‹ค ๋ˆ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— i % len(arr)์„ ๋‹ค์‹œ ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  if๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ i๊ฐ€ 0์ธ ๊ฒฝ์šฐ์—๋Š” i๊ฐ€ arr๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ arr๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•ด์•ผํ•˜๋ฏ€๋กœ,

i์— ๋‹ค์‹œ arr ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๋ฅผ ๋‹ค์‹œ ๋”ํ•ด์ค€๋‹ค. 

i๊ฐ€ arr๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ, i๋ฅผ 1์”ฉ ๋นผ์ค€๋‹ค.

 

๋งˆ์ง€๋ง‰์œผ๋กœ print๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ pop์„ ์ด์šฉํ•ด i๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ๊บผ๋‚ด์ฃผ๊ณ , end=", "์„ ์‚ฌ์šฉํ•ด์„œ ์›์†Œ๋ฅผ ๊บผ๋‚ธ ๋‹ค์Œ ์ฝค๋งˆ๋ฅผ ๋ง๋ถ™์ด๋„๋ก ํ•ด์ฃผ์—ˆ๋‹ค. while๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ„ ๊ฒฝ์šฐ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ๊บผ๋‚ด์ฃผ๊ณ  format์„ ์‚ฌ์šฉํ•ด์„œ ๋งˆ์ง€๋ง‰์— '>'์„ ๋ถ™์—ฌ์ฃผ์—ˆ๋‹ค.

 

n, k = map(int, input().split())
arr = []
for i in range(1, n+1): 
    arr.append(i)
    
print("<",end='')
i = 0
while len(arr) > 1:
    i = i+k
    if i > len(arr):
        i = i % len(arr)
        if i == 0 :
            i = i+ len(arr)
    i = i-1
    print(arr.pop(i), end=", ")

print("{}>".format(arr.pop()))

'๋ฐฑ์ค€ > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 1475๋ฒˆ  (0) 2022.07.04
[Python] ๋ฐฑ์ค€ 1427๋ฒˆ  (0) 2022.07.04
[Python] ๋ฐฑ์ค€ 1748๋ฒˆ  (0) 2022.07.04
[Python] ๋ฐฑ์ค€ 1978๋ฒˆ  (0) 2022.06.25
[Python] ๋ฐฑ์ค€ 1764๋ฒˆ  (0) 2022.06.22