πŸ˜Ίν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - LV.2 점프와 μˆœκ°„ 이동 [JS]

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

문제 μ„€λͺ…

OO μ—°κ΅¬μ†ŒλŠ” ν•œ λ²ˆμ— K 칸을 μ•žμœΌλ‘œ μ ν”„ν•˜κ±°λ‚˜, (ν˜„μž¬κΉŒμ§€ 온 거리) x 2 에 ν•΄λ‹Ήν•˜λŠ” μœ„μΉ˜λ‘œ μˆœκ°„μ΄λ™μ„ ν•  수 μžˆλŠ” νŠΉμˆ˜ν•œ κΈ°λŠ₯을 κ°€μ§„ 아이언 슈트λ₯Ό κ°œλ°œν•˜μ—¬ νŒλ§€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 아이언 슈트...

이젠 λ‚΄κ°€ μ„€λͺ…ν•˜κ² λ‹€.
1. μ΄λ™ν•˜λ €λŠ” 거리 n
2. 2의 κ±°λ“­μ œκ³± 만큼 μˆœκ°„μ΄λ™ ν•  수 μžˆλŠ” 슈트(1 μ „λ ₯ μ†Œλͺ¨)
3. 1μΉΈ μ ν”„ν•˜λ©΄ 1μ „λ ₯ μ†Œλͺ¨
4. μˆœκ°„μ΄λ™ν•˜λ©΄ μ „λ ₯을 아끼고 μ ν”„ν•˜λ©΄ μ „λ ₯을 μ†Œλͺ¨ν•˜λŠ” μ΄μƒν•œ 슈트

μ˜ˆμ‹œ 1) n = 32 λ©΄ 닡은 1 μ™œλƒ μˆœκ°„μ΄λ™ν•˜λ‹ˆκΉ!!!
μ˜ˆμ‹œ 2) n = 5 λ©΄ 닡은 2 μ™œλƒ 4λ§ŒνΌμ€ μˆœκ°„μ΄λ™ν•˜κ³  5κΉŒμ§€λŠ” 1만큼 점프!!!

풀이

첫 풀이

function solution(n) {
    var ans = 0;
    while(n > 0){
        if (n % 2 == 0){
            n = (n/2);   
        } else{
            n = n-1;
            ans+= 1;
        }
    }
    return ans;
}

λ‹€λ₯Έ 풀이

function solution(n) {
    return Array.from(n.toString(2)).join("").replace(/0/g, "").length;
}

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

μ²˜μŒμ— countλΌλŠ” λ³€μˆ˜λ₯Ό λ§Œλ“€μ–΄ 값을 점점 λ”ν•΄κ°€λŠ” λ‘œμ§μ„ κ΅¬μ„±ν–ˆλ‹€. ν•˜μ§€λ§Œ 이 λ°©λ²•μ—μ„œλŠ” 계속 였λ₯˜κ°€ λ°œμƒν•˜κ³ , λ­”κ°€ λΉ„νš¨μœ¨μ μ΄λΌλŠ” 생각이 λ“€μ—ˆλ‹€. κ·Έλž˜μ„œ λ‹€λ₯Έ 접근법을 μ‹œλ„ν•΄ nμ—μ„œ 값을 λΉΌλŠ” 둜직으둜 λ³€κ²½ν–ˆλ”λ‹ˆ 생각보닀 λ¬Έμ œκ°€ μ‰½κ²Œ ν•΄κ²°λ˜μ—ˆλ‹€.

λ‹€μ–‘ν•œ 글듀을 μ½μ–΄λ³΄λ‹ˆ, 2μ§„μˆ˜μ—μ„œ 1의 개수만큼 λ¦¬ν„΄ν•˜λ©΄ 정닡이 λœλ‹€λŠ” 힌트λ₯Ό λ°œκ²¬ν–ˆλ‹€. 이게 뭐람 μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œλŠ” μ—­μ‹œ λ‹€μ–‘ν•œ λ°©μ‹μœΌλ‘œ μ ‘κ·Όν•΄ λ³΄λŠ” 것이 μ€‘μš”ν•œ κ±° κ°™λ‹€.

profile
laonlaon

0개의 λŒ“κΈ€