Jieunny์˜ ๋ธ”๋กœ๊ทธ

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋‹ค์Œ ํฐ ์ˆซ์ž ๋ณธ๋ฌธ

Study/Coding Test

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋‹ค์Œ ํฐ ์ˆซ์ž

Jieunny 2023. 11. 24. 17:05

๐Ÿ“Œ ๋ฌธ์ œ

์ž์—ฐ์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค.

- ์กฐ๊ฑด 1. n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋Š” n๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค.

- ์กฐ๊ฑด 2. n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž์™€ n์€ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ 1์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

- ์กฐ๊ฑด 3. n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋Š” ์กฐ๊ฑด 1, 2๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜ ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ 78(1001110)์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋Š” 83(1010011)์ž…๋‹ˆ๋‹ค.

์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

๐Ÿ’ก ์•„์ด๋””์–ด 

i๋ณด๋‹ค ํฐ ์ˆ˜๋ถ€ํ„ฐ ์ œํ•œ์‚ฌํ•ญ์— ๊ฑธ๋ ค์žˆ๋Š” ์ˆ˜๊นŒ์ง€ for๋ฌธ ๋Œ๋ฉด์„œ ์ฐพ์œผ๋ฉด ๋˜๋Š” ๋ฌธ์ œ

 

โœ๏ธ ํ’€์ด

function solution(n) {
    var answer = 0;
    let nBinary = n.toString(2);
    let nOneCnt = 0;
    for(let i=0; i<nBinary.length; i++) {
        if(nBinary[i] === '1') nOneCnt++;
    }
    for(let i=n + 1; i<1000000; i++) {
        let iBinary = i.toString(2);
        let jOneCnt = 0;
        for(let j=0; j<iBinary.length; j++) {
        if(iBinary[j] === '1') jOneCnt++;
        }
        if(nOneCnt === jOneCnt) {
            answer = i;
            break;
        }
    }
    return answer;
}