Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ค์ ํฐ ์ซ์ ๋ณธ๋ฌธ
๐ ๋ฌธ์
์์ฐ์ 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;
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ (0) | 2023.11.20 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - [3์ฐจ] n์ง์ ๊ฒ์ (0) | 2023.10.26 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - [3์ฐจ] ์์ถ (0) | 2023.10.13 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์์ ์ฐพ๊ธฐ (0) | 2023.09.20 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ธ์ด์ ํ (0) | 2023.09.13 |