๋ฌธ์ ๋งํฌ
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ ํ์ ์๊ฐ ์ด๋
OO ์ฐ๊ตฌ์๋ ํ ๋ฒ์ K ์นธ์ ์์ผ๋ก ์ ํํ๊ฑฐ๋, (ํ์ฌ๊น์ง ์จ ๊ฑฐ๋ฆฌ) x 2 ์ ํด๋นํ๋ ์์น๋ก ์๊ฐ์ด๋์ ํ ์ ์๋ ํน์ํ ๊ธฐ๋ฅ์ ๊ฐ์ง ์์ด์ธ ์ํธ๋ฅผ ๊ฐ๋ฐํ์ฌ ํ๋งคํ๊ณ ์์ต๋๋ค. ์ด ์์ด์ธ ์
programmers.co.kr
์ ๊ทผ ๋ฐฉ๋ฒ
๊ท์น์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค.
K์นธ์ ๊ฐ๋ฉด K๋งํผ์ ๊ฑด์ ์ง๊ฐ ํ์ํ์ง๋ง ์๊ฐ์ด๋์๋ ๊ฑด์ ์ง๊ฐ ํ์ํ์ง ์๋ค.
์ฆ, ์๊ฐ์ด๋์ ์ต๋ํ ์ฌ์ฉํ๋ ๋ฌธ์ ์ด๋ค.
์๊ฐ์ด๋๋ง ์ฌ์ฉํ ์ 1-> 2 -> 4 -> 8 -> 16 .. ์ด๋ฐ์์ผ๋ก 2๋ฐฐ์ฉ ์ฆ๊ฐํ๋๋ฐ
๋ฐ๋๋ก n์์ n / 2๊ฐ ์ฑ๋ฆฝํ ๋์๋ ๊ฑด์ ์ง๊ฐ ๋ค์ง ์๋๋ค๋ ๋ง์ด๋ค.
์ฆ n = 5000 ์ผ๋
5000 -> 2500 -> 1250 -> 625 -> 624 -> 312 -> 156 -> 78 -> 39 -> 38 ...
์ด์ฒ๋ผ n์ด ํ์ ์ผ๋ ๊ฑด์ ์ง + 1์ ํด์ฃผ๋ฉด ์ฝ๊ฒ ์ ๋ต์ ๊ตฌํ ์ ์๋ค.
function solution(n) {
var ans = 0;
while (n > 0) {
if (n % 2 === 0) n /= 2;
else {
ans++;
n -= 1;
}
}
return ans;
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] ์ต์๊ฐ ๋ง๋ค๊ธฐ (12941) (0) | 2022.06.25 |
---|---|
[Javascript] ์ค ์๋ ๋ฐฉ๋ฒ (12936) (0) | 2022.06.25 |
[Javascript] 3 x n ํ์ผ๋ง (12902) (0) | 2022.06.25 |
[Javascript] ํ๋ณด๋์น ์ (12945) (0) | 2022.06.25 |
[Javascript] ํ๋ ธ์ด์ ํ (12946) - fail (0) | 2022.06.24 |