๋ฌธ์ ๐ฝ
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 ๋ฉ์๋์ ๋ํด ๋ณต๊ธฐํ๋ ์๊ฐ์ด ๋๋ค.