[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] LV.2 2๊ฐœ ์ดํ•˜๋กœ ๋‹ค๋ฅธ ๋น„ํŠธ

 

1. ๋ฌธ์ œ : Link

2๊ฐœ ์ดํ•˜์˜ ๋น„ํŠธ๋ฅผ ๋ฐ”๊พธ๋ฉด์„œ ํ•ด๋‹น ์ˆซ์ž๋ณด๋‹ค ํฐ ์ˆ˜๊ตฌํ•˜๊ธฐ

 

2. ํ’€์ด

๊ทœ์น™์„ ์ฐพ์•„๋‚ด์„œ ์ ์šฉ

 

3. ์ฝ”๋“œ

def bin_to_dex(n): 
    return int('0b' + ''.join(n), 2)

def solution(numbers):
    answer = []
    for num in numbers:
        change = False
        num = list(bin(num)[2:])
        l = len(num)
        for i in range(l-1, -1, -1):
            if num[i] == '0':
                if i == l-1:
                    num[i] = '1'
                    answer.append(bin_to_dex(num))
                    change = True
                    break
                else:
                    num[i] = '1'
                    num[i+1] = '0'
                    answer.append(bin_to_dex(num))
                    change = True
                    break
        if change == False:
            num.insert(0,'1')
            num[1] = '0'
            answer.append(bin_to_dex(num))
    return answer

* bin, dex ๋ณ€ํ™˜ ์ž˜ ์•Œ์•„๋‘๊ธฐ

* for๋ฌธ ์—ญ์ˆœ

* join์€ ์ด์ œ ์™ธ์šธ๋•Œ ๋์ž๋‚˜..

 

๋น„์Šทํ•œ ๋ฌธ์ œ,

+1 ํ•ด์ฃผ๋ฉด์„œ count๋กœ 1๊ฐ’ ๋น„๊ต!

def bin_to_dex(n): 
    return int('0b' + ''.join(n), 2)

def solution(n):
    change = False
    m = list(bin(n)[2:])
    cnt = m.count('1')
    
    while 1:
        n += 1
        m = list(bin(n)[2:])
        cnt2 = m.count('1')
        if cnt == cnt2:
            return bin_to_dex(m)
  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ