๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CodingTest

[Python]๋ฐฑ์ค€ 2162::์นด๋“œ2

by ๋„์บ๋ฆฌ๐Ÿฑ 2021. 5. 4.
๋ฐ˜์‘ํ˜•

 

Solution

๐Ÿ‘‰ 1 ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์นด๋“œ ๋ฑ์— ๋„ฃ๊ณ , ์•ž์— ์žˆ๋Š” ๊ฒƒ๋“ค์„ ํ•ญ์ƒ pop ํ•ด์ค˜์•ผ ํ•˜๋ฏ€๋กœ deque ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 

๐Ÿ‘‰ํ์— ๊ฐ’์ด ํ•˜๋‚˜ ๋‚จ์•„์žˆ๋‹ค๋ฉด ๊ทธ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฒŒ ๋‹ต์ด๋‹ค.

๐Ÿ‘‰ํ์— ๊ฐ’์ด ํ•˜๋‚˜ ์ด์ƒ์ผ ๋•Œ๋Š”, ๋งจ์•ž์— ์žˆ๋Š” ์ˆซ์ž๋ฅผ pop ํ•ด์„œ๊บผ๋‚ด๊ณ , ๋˜ํ•œ ๋ฒˆ pop ํ•œ ๊ฐ’์€ append ํ•ด์ค€๋‹ค .

 

Tip

๐Ÿ‘‰from collections import deque

๐Ÿ‘‰dq = deque()  ์ด๋ ‡๊ฒŒ ํ๋ฅผ ๋งŒ๋“ ๋‹ค.

๐Ÿ‘‰dq.popleft() (๊ฐœ์ธ์ ์œผ๋กœ ์ฒ˜์Œ ํ’€๋•Œ ๋ ˆํ”„ํŠธ ํŒ ์ด๋ผ๊ณ  ์จ์„œ ํ‹€๋ ธ์—ˆ๋Š”๋ฐ, ์›๋ž˜ ๊ธฐ๋ณธ ํŒ์ด ์žˆ์œผ๋‹ˆ ํŒ์ด ํ•ญ์ƒ ๋จผ์ €์˜จ๋‹ค๊ณ  ์ธ์ง€ํ•˜๋ฉด ์™ธ์šฐ๊ธฐ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.)

๐Ÿ‘‰append๋กœ ๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค.

 

# 2162 ์นด๋“œ 2

from collections import deque

N = int(input()) # 1<= <=500000
dq = deque()

for i in range(N):
    dq.append(i+1)
       
while(len(dq) != 1):
    
    dq.popleft()
    
    if(len(dq)==1):
        break
    else:
        k = dq.popleft()
        dq.append(k)
    
print(dq.popleft())
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€