๐Ÿงฉ Algorithm/[BOJ] Silver

BOJ 2164๋ฒˆ : ์นด๋“œ2 (Python/์ž๋ฃŒ๊ตฌ์กฐ(ํ)/Silver 4)

devCloud 2024. 1. 30. 18:35
728x90
 

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()์„ ์จ์„œ ๋’ท ์žฅ๋ถ€ํ„ฐ ๋ฐ˜๋ณต์ด ๋์—ˆ๋‹ค. ์•ฝ๊ฐ„์˜ ์‹ค์ˆ˜..

728x90