2164๋ฒ: ์นด๋2
N์ฅ์ ์นด๋๊ฐ ์๋ค. ๊ฐ๊ฐ์ ์นด๋๋ ์ฐจ๋ก๋ก 1๋ถํฐ N๊น์ง์ ๋ฒํธ๊ฐ ๋ถ์ด ์์ผ๋ฉฐ, 1๋ฒ ์นด๋๊ฐ ์ ์ผ ์์, N๋ฒ ์นด๋๊ฐ ์ ์ผ ์๋์ธ ์ํ๋ก ์์๋๋ก ์นด๋๊ฐ ๋์ฌ ์๋ค. ์ด์ ๋ค์๊ณผ ๊ฐ์ ๋์์ ์นด๋๊ฐ
www.acmicpc.net
์ค๋ช
N์ฅ์ ์นด๋๊ฐ ์๋๋ฐ, ํ ์ฅ์ด ๋จ์ ๋๊น์ง ๋ค์๊ณผ ๊ฐ์ ๋์์ ๋ฐ๋ณตํ๋ค.
1. ์ ์ผ ์์ ์๋ ์นด๋๋ฅผ ๋ฒ๋ฆฐ๋ค.
2. ๊ทธ ๋ค์, ์ ์ผ ์์ ์๋ ์นด๋๋ฅผ ์ ์ผ ์๋์ ์๋ ์นด๋ ๋ฐ์ผ๋ก ์ฎ๊ธด๋ค.
์ ๊ณผ์ ์ ๋ฐ๋ณตํ๊ณ ๋๋ฉด ํ ์ฅ์ ์นด๋๊ฐ ๋จ๊ฒ ๋๋ค. ๊ทธ ์๋ฅผ ๊ตฌํด์ผ ํ๋ค.
ํ์ด
Queue ์ฌ์ฉ
1. ํ ์์ฑ
2. 1์ฅ์ด ๋จ์ ๋ ๊น์ง ๋ฒ๋ฆฌ๊ณ , ์ฎ๊ธฐ๋ ๊ณผ์ ์ ๋ฐ๋ณต
- ๋ฐ๋ณต๋ฌธ์์ popleft()๋ฅผ ์ด์ฉํด ์ ์ฅ์ ๋ฒ๋ฆฐ๋ค.
- ์ฒซ ๋ฒ์งธ ์นด๋๋ฅผ append()๋ฅผ ์ด์ฉํด ๋งจ ๋ค์ ์ถ๊ฐํ๋ค.
- ๋ค๋ก ์ฎ๊ฒผ์ผ๋ฏ๋ก ๊ทธ ์นด๋๋ popleft()๋ฅผ ์ด์ฉํด ๋ฒ๋ฆฐ๋ค.
3. ๋ง์ง๋ง์ผ๋ก ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์ ์ถ๋ ฅํ๋ค.
Solution
import sys
input = sys.stdin.readline
from collections import deque
n = int(input())
q = deque() #๋ฑ ์์ฑ
for i in range(1, n+1):
q.append(i)
while len(q) > 1: #ํ ์ฅ์ด ๋จ์ ๋๊น์ง ๋ฐ๋ณต
q.popleft() #์ ์ฅ ๋ฒ๋ฆฌ๊ธฐ
q.append(q[0]) #๋ฐ์ผ๋ก ์ฎ๊ธฐ๊ธฐ
q.popleft()
print(q[0]) #๋จ์ ํ ์ฅ์ ์นด๋ ์ถ๋ ฅ
๐ฉ๐ป ํ๊ณ
์ฒ์ ์๋ ๋๋ ๊ฒฐ๊ณผ๊ฐ 1์ด ์ถ๋ ฅ๋ผ์ ๊ฒ์ฌํ๋๋ pop()์ ์จ์ ๋ท ์ฅ๋ถํฐ ๋ฐ๋ณต์ด ๋์๋ค. ์ฝ๊ฐ์ ์ค์..
'๐งฉ Algorithm > [BOJ] Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| BOJ 11723๋ฒ : ์งํฉ (Python/๊ตฌํ/Silver 5) (0) | 2024.03.12 |
|---|---|
| BOJ 9655๋ฒ : ๋ ๊ฒ์ (Python/๊ตฌํ, DP/Silver 5) (0) | 2024.03.10 |
| BOJ 11728๋ฒ : ๋ฐฐ์ด ํฉ์น๊ธฐ (Python/Two-Pointer/Silver 5) (4) | 2023.11.09 |
| BOJ 10814๋ฒ : ๋์ด์ ์ ๋ ฌ (Python/์๋ฃ๊ตฌ์กฐ/Silver 5) (1) | 2023.10.31 |
| BOJ 11722๋ฒ : ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด (Python/Silver 2) (1) | 2023.10.26 |