[μκ³ λ¦¬μ¦ || νλ‘κ·Έλλ¨Έμ€] μ΄μ§ λ³ν λ°λ³΅νκΈ°
https://school.programmers.co.kr/learn/courses/30/lessons/70129
νλ‘κ·Έλλ¨Έμ€
μ½λ μ€μ¬μ κ°λ°μ μ±μ©. μ€ν κΈ°λ°μ ν¬μ§μ λ§€μΉ. νλ‘κ·Έλλ¨Έμ€μ κ°λ°μ λ§μΆ€ν νλ‘νμ λ±λ‘νκ³ , λμ κΈ°μ κΆν©μ΄ μ λ§λ κΈ°μ λ€μ λ§€μΉ λ°μΌμΈμ.
programmers.co.kr
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
Number.prototype.toString() - JavaScript | MDN
toString() λ©μλλ νΉμ ν Number κ°μ²΄λ₯Ό λνλ΄λ λ¬Έμμ΄μ λ°νν©λλ€.
developer.mozilla.org
while λ¬Έμ΄ νλ°ν΄ λ λ count λ +1 μ© ν΄μ€λ€.
κ·ΈλΌ μ΅μ’ μ μΌλ‘ s κ° 1μ΄ λ λκΉμ§ μ κ³Όμ μ λ°λ³΅ν ν [count, zero] λ₯Ό λ°νν΄μ€ μ μλ€.