λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
개발/π™‹π™§π™€π™œπ™§π™–π™’π™’π™šπ™§π™¨

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 'λ‹€μŒ 큰 숫자' 파이썬 풀이

by beomcoder 2023. 2. 21.
728x90
λ°˜μ‘ν˜•
 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ λ§€μΉ­. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 λ§€μΉ­ λ°›μœΌμ„Έμš”.

programmers.co.kr

"""
μžμ—°μˆ˜ n이 μ£Όμ–΄μ‘Œμ„ λ•Œ, n의 λ‹€μŒ 큰 μˆ«μžλŠ” λ‹€μŒκ³Ό 같이 μ •μ˜ ν•©λ‹ˆλ‹€.

쑰건 1. n의 λ‹€μŒ 큰 μˆ«μžλŠ” n보닀 큰 μžμ—°μˆ˜ μž…λ‹ˆλ‹€.
쑰건 2. n의 λ‹€μŒ 큰 μˆ«μžμ™€ n은 2μ§„μˆ˜λ‘œ λ³€ν™˜ν–ˆμ„ λ•Œ 1의 κ°―μˆ˜κ°€ κ°™μŠ΅λ‹ˆλ‹€.
쑰건 3. n의 λ‹€μŒ 큰 μˆ«μžλŠ” 쑰건 1, 2λ₯Ό λ§Œμ‘±ν•˜λŠ” 수 쀑 κ°€μž₯ μž‘μ€ 수 μž…λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄μ„œ 78(1001110)의 λ‹€μŒ 큰 μˆ«μžλŠ” 83(1010011)μž…λ‹ˆλ‹€.

μžμ—°μˆ˜ n이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, n의 λ‹€μŒ 큰 숫자λ₯Ό 
return ν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.
"""

def solution(n):
    answer = n
    while answer:=answer+1 :
        if bin(n).count('1') == bin(answer).count('1'):
            return answer

"""
while문에 answer := answer+1λ₯Ό cμ—μ„œ (;;1)처럼 
λ¬΄ν•œ 증가 for문을 μ“°κ³  μ‹Άμ–΄μ„œ μ‚¬μš©ν–ˆλ‹€.
answer := answer+1 은 answer에 1을 λ”ν•œλ‹€.
그리고 answerκ°€ 0이 μ•„λ‹ˆλΌλ©΄ λ¬΄ν•œλ£¨ν”„κ°€ λˆλ‹€.

그리고 κΈ°μ‘΄κ°’μ˜ μ΄μ§„μˆ˜μ˜ 1의 κ°œμˆ˜μ™€ μ •λ‹΅μ˜ 1의 κ°œμˆ˜κ°€ κ°™λ‹€λ©΄
정닡을 λ¦¬ν„΄ν•œλ‹€.
"""
728x90
λ°˜μ‘ν˜•

λŒ“κΈ€