์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ”ฅ/๋ฐฑ์ค€

๋ฐฑ์ค€ 1158๋ฒˆ : ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ(S4)

23.8 2023. 12. 29. 19:34
๋ฐ˜์‘ํ˜•

 

https://www.acmicpc.net/problem/1158

 

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

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

www.acmicpc.net

 

 

โœจ ๋ฌธ์ œ

  • ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.N๊ณผ K๊ฐ€ ์ฃผ์–ด์ง€๋ฉด (N, K)-์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.
  • 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€ N๋ช…์˜ ์‚ฌ๋žŒ์ด ์›์„ ์ด๋ฃจ๋ฉด์„œ ์•‰์•„์žˆ๊ณ , ์–‘์˜ ์ •์ˆ˜ K(≤ N)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด์ œ ์ˆœ์„œ๋Œ€๋กœ K๋ฒˆ์งธ ์‚ฌ๋žŒ์„ ์ œ๊ฑฐํ•œ๋‹ค. ํ•œ ์‚ฌ๋žŒ์ด ์ œ๊ฑฐ๋˜๋ฉด ๋‚จ์€ ์‚ฌ๋žŒ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์›์„ ๋”ฐ๋ผ ์ด ๊ณผ์ •์„ ๊ณ„์†ํ•ด ๋‚˜๊ฐ„๋‹ค. ์ด ๊ณผ์ •์€ N๋ช…์˜ ์‚ฌ๋žŒ์ด ๋ชจ๋‘ ์ œ๊ฑฐ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†๋œ๋‹ค. ์›์—์„œ ์‚ฌ๋žŒ๋“ค์ด ์ œ๊ฑฐ๋˜๋Š” ์ˆœ์„œ๋ฅผ (N, K)-์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์ด๋ผ๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด (7, 3)-์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์€ <3, 6, 2, 7, 5, 1, 4>์ด๋‹ค.

 

โœจ ์ ‘๊ทผ ๋ฐฉ๋ฒ•

 

- 1๋ถ€ํ„ฐ N๊นŒ์ง€๋กœ ๊ตฌ์„ฑ๋œ ์ˆœ์—ด์„ ํ๋กœ ๋งŒ๋“ค๊ณ  ํ๋ฅผ k๋งŒํผ ๋Œ๋ ค์ค€๋‹ค. ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์žฌ ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๊ฐ’์„ answer ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ  popleft๋ฅผ ํ•œ๋‹ค. ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณต!

 

- deque์˜ rotate ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. 

 

- ๋‹ค๋ฅธ ๋ฐฑ์ค€ ๋ฌธ์ œ์ธ 2346๋ฒˆ : ํ’์„ ๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค!

 

- ๋‹ค๋งŒ ์ •๋‹ต ์ถœ๋ ฅ ํ˜•์‹์ด <์ˆซ์ž> ๋ผ์„œ ํŒŒ์ด์ฌ์˜ replace ํ•จ์ˆ˜๋Š” ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์•Œ์•„๋ƒˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” answer ๋ฐฐ์—ด์„ str๋กœ ํƒ€์ž…์„ ๋ณ€ํ™˜์‹œํ‚ค๊ณ  []์„ ๊ฐ๊ฐ <>๋กœ ๋ฐ”๊ฟ”์ค˜์„œ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

 

โœจ ์ฝ”๋“œ

from collections import deque

N, K = map(int, input().split())
answer = []

now = K
people = deque([i for i in range(1, N+1)])

while people :
    people.rotate(-now +1)
    answer.append(people[0])
    people.popleft()
    
result_string = str(answer).replace("[", "<").replace("]", ">")
print(result_string)
728x90
๋ฐ˜์‘ํ˜•