https://school.programmers.co.kr/learn/courses/30/lessons/70129
function solution(s) {
let zero = 0;
let count = 0;
while (s !== "1") {
zero += s.split("1").join("").length;
s = s.split("0").join("").length.toString(2);
count++;
}
return [count, zero];
}
์ด๋ป๊ฒ ํ๋ฉด ์ต๋ํ ํ๋ณํ์ ์์ํค๊ณ ๋ง๋ค ์ ์์๊น ํ๋ค๊ฐ
์ด์จ๋ ์นด์ดํธ๋ฅผ ํ๋ ค๋ฉด ํ๋ณํ์ด ํ์ํ๊ธด ํ๋ค.
์ฒ์์ ๋ฐฐ์ด๋ก ๋ง๋ ํ filter ๋ก ๊ฐ์ ์์๋ค๊ฐ ๋ ๊ฐ๋จํ split ์ ์ด์ฉํ๋ค.
split ์ ์ด์ฉํด ํ์์๋ ๋ฌธ์๋ฅผ ์์์คฌ๋ค.
0์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ zero ์ ๊ฒฝ์ฐ ๋ฌธ์์ด s ์์ 1์ ์ ๊ฑฐ, join ํด์ค ํ์ length ๋ฅผ ๊ณ์ ๋ํด์คฌ๋ค.
์ฃผ์ด์ง ๋ฌธ์ s ๋ 0์ ์ ๊ฑฐํ ํ, join ์ผ๋ก ํฉ์น๋ค์ ๊ทธ length ๋ฅผ toString(2) ๋ฅผ ์ด์ฉํด ์ด์ง ๋ณํ์ ํด์คฌ๋ค.
toString(์ด ์์๋ 2-32 ์ง์ ๊น์ง ๋ฃ์ ์ ์๋ค.)
์ซ์ ๊ฐ์ฒด๊ฐ ์๋ ์ซ์ ์์ฒด๋ฅผ ๋ฃ์ ๊ฒฝ์ฐ,
(125).toString(2); ์ด๋ฐ ์์ผ๋ก ๊ดํธ๋ก ๊ฐ์ธ์ค์ผ ๋ณํ์ด ๋๋ค.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/toString
while ๋ฌธ์ด ํ๋ฐํด ๋ ๋ count ๋ +1 ์ฉ ํด์ค๋ค.
๊ทธ๋ผ ์ต์ข ์ ์ผ๋ก s ๊ฐ 1์ด ๋ ๋๊น์ง ์ ๊ณผ์ ์ ๋ฐ๋ณตํ ํ [count, zero] ๋ฅผ ๋ฐํํด์ค ์ ์๋ค.