CodingTest
[Python]λ°±μ€ 2162::μΉ΄λ2
λμΊλ¦¬π±
2021. 5. 4. 13:22
λ°μν
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())
λ°μν