πŸ˜Ίν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - LV.2 λ‹€μŒ 큰 숫자 [JS]

laonΒ·2024λ…„ 6μ›” 18일
post-thumbnail

문제 μ„€λͺ…

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

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

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

μ œν•œ 사항

n은 1,000,000 μ΄ν•˜μ˜ μžμ—°μˆ˜ μž…λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

nresult
7883
1523

풀이

λ°˜λ³΅λ¬Έμ„ 톡해 2μ§„μˆ˜ λ¬Έμžμ—΄μ˜ 1의 개수λ₯Ό μ„ΈλŠ” λŒ€μ‹ , λ¬Έμžμ—΄μ—μ„œ 0을 μ—†μ• κ³  남은 1의 개수λ₯Ό μ„ΈλŠ” 방법이 λ– μ˜¬λžλ‹€.

첫 풀이

function solution(n) {
    const nLength = n.toString(2).split("0").join("").length
    let count = 0;
    while(nLength!==count){
        n++
        count = n.toString(2).split("0").join("").length;
    }
    return n;
}

λ¦¬νŒ©ν† λ§

function solution(n) {
    const nLength = n.toString(2).replace(/0/g, '').length
    let count = 0;
    while(nLength!==count){
        n++
        count = n.toString(2).replace(/0/g, '').length;
    }
    return n;
}

λŠλ‚€μ πŸ˜Ί

λ‹€ν–‰νžˆ 이번 λ¬Έμ œλŠ” κ°„λ‹¨νžˆ ν’€ 수 μžˆμ—ˆλ‹€. μ„±κ³΅μ μœΌλ‘œ 문제λ₯Ό ν•΄κ²°ν•œ ν›„, 더 λ‚˜μ€ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄ λ¦¬νŒ©ν† λ§μ— μ§‘μ€‘ν–ˆλ‹€. μ•žμœΌλ‘œλ„ μ΄λŸ¬ν•œ μŠ΅κ΄€μ„ μœ μ§€ν•΄μ•Όκ² λ‹€.

profile
laonlaon

0개의 λŒ“κΈ€