function solution(n) {
// n์ ์ด์ง์๋ก ๋ฐ๊พธ๊ณ 1์ ๊ฐฏ์๋ฅผ ๋ณ์๋ก ์ ์ธ ๋ฐ ํ ๋น
// 1์ฉ ๋ํ๋ฉด์ ์ด์ง์๋ก ๋ฐ๊พผ ๊ฐ์ 1๊ฐฏ์๊ฐ ์์์ ๊ตฌํ ๋ณ์์ ๊ฐ์ ๋, ๊ทธ ๊ฐ์ ๋ฆฌํดํ๋ค.
let countFirst = n.toString(2).split('').filter((x) => x === '1').length;
let answer = false;
while (!answer) {
n++;
let countSecond = [...n.toString(2)].filter((x) => x === '1').length;
if (countFirst === countSecond) {
answer = n;
}
}
return answer;
}
- ์ฃผ์ด์ง n์ ์ด์ง์๋ก ๋ฐ๊พธ๊ณ 1์ ๊ฐฏ์๋ฅผ ์นด์ดํธํ์ฌ countFirst์ ์ ์ธ ๋ฐ ํ ๋นํฉ๋๋ค.
- ๋ฐ๋ณตํ์ฌ n์ 1์ฉ ์ฆ๊ฐ์ํค๊ณ ๊ทธ ๋๋ง๋ค ๋ง์ฐฌ๊ฐ์ง๋ก 1์ ๊ฐฏ์๋ฅผ ์นด์ดํธํ์ฌ countSecond์ ์ ์ธ ๋ฐ ํ ๋นํฉ๋๋ค.
- countFirst์ countSecond์ ๊ฐ์ด ๊ฐ์ ๋, while๋ฌธ์ด ์ข ๋ฃ๋๊ณ answer์ n๊ฐ์ ํ ๋นํฉ๋๋ค.
๋ต์ ๋ง์๋ ํจ์จ์ฑ ๋ฌธ์ ์์ ๊ฑธ๋ฆฌ ์ค ์์๋๋ฐ, ํ๋ฒ์ ํต๊ณผ๊ฐ ๋์๋ค..!
์ฒ์์ n์์ 1๋ถํฐ ๋ํ๋ฉด์ ๊ฐ ํ์๊ฐ ์๋ ์๊ฐํ๋๋ฐ, n์ด 1์ผ ๋ 1์ ๋ํ๋ฉด 2๊ฐ ๋๊ณ ์ด์ง์๋ก 10์ด๊ธฐ์ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ค.
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์ฐ์ต๋ฌธ์ - ๋ ๋ฐ๋จน๊ธฐ (0) | 2022.07.09 |
---|---|
[JS] ์ฐ์ต๋ฌธ์ - ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2022.07.07 |
[JS] ์ฐ์ต๋ฌธ์ - ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2022.07.06 |
[JS] ์ฐ์ต๋ฌธ์ - ์ซ์ ๋ธ๋ก (0) | 2022.07.05 |
[JS] ์ฐ์ต๋ฌธ์ - ํ๋ ฌ์ ๊ณฑ์ (0) | 2022.07.05 |