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
'๐งฉ Algorithm > [BOJ] Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [BOJ] 2002. ์ถ์ (Python/๊ตฌํ/Silver 2) (1) | 2024.10.29 |
|---|---|
| [BOJ] 1021. ํ์ ํ๋ ํ (Python/์๋ฃ๊ตฌ์กฐ/Silver 3) (1) | 2024.10.29 |
| BOJ 11723๋ฒ : ์งํฉ (Python/๊ตฌํ/Silver 5) (0) | 2024.03.12 |
| BOJ 9655๋ฒ : ๋ ๊ฒ์ (Python/๊ตฌํ, DP/Silver 5) (0) | 2024.03.10 |
| BOJ 2164๋ฒ : ์นด๋2 (Python/์๋ฃ๊ตฌ์กฐ(ํ)/Silver 4) (1) | 2024.01.30 |