๐Ÿงฉ Algorithm/[BOJ] Silver

[BOJ] 2161. ์นด๋“œ1 (Python/์ž๋ฃŒ๊ตฌ์กฐ/Silver 5)

devCloud 2024. 10. 29. 12:55
728x90

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‰ https://www.acmicpc.net/problem/2161


ํ’€์ด

ํ ์ƒ์„ฑ ๋ฐฉ๋ฒ•

from collections import deque
queue = deque()
  • collections์˜ ๋ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ import ํ•œ๋‹ค.
  • deque() ๋ฅผ ์„ ์–ธํ•˜๋ฉด ์–‘๋ฐฉํ–ฅ ํ์ธ ๋ฑ์ด ์ƒ์„ฑ๋œ๋‹ค.

 

์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ๋นผ๋‚ด๋Š” ๋ฐฉ๋ฒ•

queue.popleft()
  • popleft() ๋Š” ์™ผ์ชฝ์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ํ์—์„œ ๋นผ๊ณ  ์ถœ๋ ฅํ•œ๋‹ค.
  • pop() ์€ ์˜ค๋ฅธ์ชฝ์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ํ์—์„œ ๋นผ๊ณ  ์ถœ๋ ฅํ•œ๋‹ค.

 

์ œ์ผ ์•„๋ž˜์— ์žˆ๋Š” ์นด๋“œ๋ฅผ ๋ฐ‘์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๋ฐฉ๋ฒ•

queue.rotate(-1)
  • rotate() ๋Š” ํ๋ฅผ ์™ผ์ชฝ ํ˜น์€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํšŒ์ „์‹œํ‚ค๋Š” ํ•จ์ˆ˜์ด๋‹ค.
  • ์ธ์ž๋กœ ์–ผ๋งŒํผ ์ด๋™์‹œํ‚ฌ์ง€ ๋„˜๊ธฐ๋ฉด ๋˜๋Š”๋ฐ, ์ด๋•Œ ๊ทธ ์ˆ˜๊ฐ€ ์Œ์ˆ˜์ด๋ฉด ์™ผ์ชฝ์œผ๋กœ, ์–‘์ˆ˜์ด๋ฉด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํšŒ์ „ํ•œ๋‹ค.

 

โ˜… rotate() ์˜ˆ์‹œ

from collections import deque

num = [1, 2, 3, 4, 5]
queue = deque(num)

 

 

1๏ธโƒฃ ์™ผ์ชฝ์œผ๋กœ 1๋งŒํผ ํšŒ์ „

queue.rotate(-1)
print(*queue)  # unpack

 

๊ฒฐ๊ณผ

2 3 4 5 1
  • ์™ผ์ชฝ์œผ๋กœ 1๋งŒํผ ํšŒ์ „์‹œํ‚จ ๊ฒฐ๊ณผ, ๋งจ ์•ž์— ์žˆ๋˜ 1์ด ๋งจ ๋’ค๋กœ ์ด๋™ํ•œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

2๏ธโƒฃ ์™ผ์ชฝ์œผ๋กœ 3๋งŒํผ ํšŒ์ „

queue.rotate(-3)
print(*queue)  # unpack

 

๊ฒฐ๊ณผ

4 5 1 2 3
  • ์™ผ์ชฝ์œผ๋กœ 3๋งŒํผ ํšŒ์ „์‹œํ‚จ ๊ฒฐ๊ณผ, 1, 2, 3 ์ด ์ฐจ๋ก€๋กœ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

3๏ธโƒฃ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 1๋งŒํผ ํšŒ์ „

queue.rotate(1)
print(*queue)  # unpack

 

๊ฒฐ๊ณผ

5 1 2 3 4
  • ์˜ค๋ฅธ์ชฝ์œผ๋กœ 1๋งŒํผ ํšŒ์ „์‹œํ‚จ ๊ฒฐ๊ณผ, ๋งจ ๋’ค์— ์žˆ๋˜ 5๊ฐ€ ์ฒซ ๋ฒˆ์งธ๋กœ ์ด๋™ํ–ˆ๊ณ  ๋‚˜๋จธ์ง€ ์ˆ˜๋“ค์ด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ชจ๋‘ ์ด๋™ํ•œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

Solution

from collections import deque

n = int(input())
card_deq = deque(range(1, n + 1))  # n ๋งŒํผ ํ์— ๋„ฃ๊ธฐ
result = []
while card_deq:
    result.append(card_deq.popleft())
    card_deq.rotate(-1)
print(*result)

 

 

 

๐Ÿ‘ฉ‍๐Ÿ’ป ํšŒ๊ณ 

๋ฑ์˜ rotate() ๋ฅผ ์ด์šฉํ•ด์„œ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 


 

728x90