๐Ÿ”’Algorithm

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ๋‹ค์Œ ํฐ ์ˆซ์ž(lv2)

devWarrior 2023. 6. 16. 22:00

๋ฌธ์ œ๐Ÿ”ฝ

https://school.programmers.co.kr/learn/courses/30/lessons/12911

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด ๐Ÿ”ฝ

// ๋ฌธ์ œ๊ฐ€ ๊ฐœํŽธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํ•จ์ˆ˜ ๊ตฌ์„ฑ์ด๋‚˜ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด, ๊ณผ๊ฑฐ์˜ ์ฝ”๋“œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
// ์ƒˆ๋กœ์šด ํ•จ์ˆ˜ ๊ตฌ์„ฑ์„ ์ ์šฉํ•˜๋ ค๋ฉด [์ฝ”๋“œ ์ดˆ๊ธฐํ™”] ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์„ธ์š”. ๋‹จ, [์ฝ”๋“œ ์ดˆ๊ธฐํ™”] ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ž‘์„ฑ ์ค‘์ธ ์ฝ”๋“œ๋Š” ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
function nextBigNumber(n) {
    var size = n.toString(2).match(/1/g).length
    while(n++) {
        if(size === n.toString(2).match(/1/g).length) return n
    }
}

๋‚ดํ’€์ด๐Ÿ”ฝ

function solution(n) {
    var answer = 0;
    let oneCount = n.toString(2).replaceAll("0","").length

    while(!answer){
        let number = ++n    
        if(number.toString(2).replaceAll("0","").length==oneCount){
            answer=number;
            break;
        }    
    }

    return answer;
}

 

๋А๋‚€์ ๐Ÿ˜ฎ 

๋ฌด๋‚œํ•˜๊ฒŒ ํ’€์—ˆ๋‹ค.. 

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ replaceAll์„ ์“ฐ๋Š” ๊ฒƒ๋ณด๋‹จ match(/1/g)๋ฅผ ์“ฐ๋Š”๊ฒŒ ์ข€๋” ํšจ์œจ์ ์ธ ๊ฒƒ ๊ฐ™๋‹ค. 

toString, parseInt ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๋ณต๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์ด ๋๋‹ค.