Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ ํ์ ์๊ฐ์ด๋ ๋ณธ๋ฌธ
๐ ๋ฌธ์
OO ์ฐ๊ตฌ์๋ ํ ๋ฒ์ K ์นธ์ ์์ผ๋ก ์ ํํ๊ฑฐ๋, (ํ์ฌ๊น์ง ์จ ๊ฑฐ๋ฆฌ) x 2 ์ ํด๋นํ๋ ์์น๋ก ์๊ฐ์ด๋์ ํ ์ ์๋ ํน์ํ ๊ธฐ๋ฅ์ ๊ฐ์ง ์์ด์ธ ์ํธ๋ฅผ ๊ฐ๋ฐํ์ฌ ํ๋งคํ๊ณ ์์ต๋๋ค. ์ด ์์ด์ธ ์ํธ๋ ๊ฑด์ ์ง๋ก ์๋๋๋๋ฐ, ์๊ฐ์ด๋์ ํ๋ฉด ๊ฑด์ ์ง ์ฌ์ฉ๋์ด ์ค์ง ์์ง๋ง, ์์ผ๋ก K ์นธ์ ์ ํํ๋ฉด K ๋งํผ์ ๊ฑด์ ์ง ์ฌ์ฉ๋์ด ๋ญ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์์ด์ธ ์ํธ๋ฅผ ์ฐฉ์ฉํ๊ณ ์ด๋ํ ๋๋ ์๊ฐ ์ด๋์ ํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ ๋๋ค. ์์ด์ธ ์ํธ ๊ตฌ๋งค์๋ ์์ด์ธ ์ํธ๋ฅผ ์ฐฉ์ฉํ๊ณ ๊ฑฐ๋ฆฌ๊ฐ N ๋งํผ ๋จ์ด์ ธ ์๋ ์ฅ์๋ก ๊ฐ๋ ค๊ณ ํฉ๋๋ค. ๋จ, ๊ฑด์ ์ง ์ฌ์ฉ๋์ ์ค์ด๊ธฐ ์ํด ์ ํ๋ก ์ด๋ํ๋ ๊ฒ์ ์ต์๋ก ํ๋ ค๊ณ ํฉ๋๋ค. ์์ด์ธ ์ํธ ๊ตฌ๋งค์๊ฐ ์ด๋ํ๋ ค๋ ๊ฑฐ๋ฆฌ N์ด ์ฃผ์ด์ก์ ๋, ์ฌ์ฉํด์ผ ํ๋ ๊ฑด์ ์ง ์ฌ์ฉ๋์ ์ต์๊ฐ์ returnํ๋ solution ํจ์๋ฅผ ๋ง๋ค์ด ์ฃผ์ธ์.
์๋ฅผ ๋ค์ด ๊ฑฐ๋ฆฌ๊ฐ 5๋งํผ ๋จ์ด์ ธ ์๋ ์ฅ์๋ก ๊ฐ๋ ค๊ณ ํฉ๋๋ค.
์์ด์ธ ์ํธ๋ฅผ ์
๊ณ ๊ฑฐ๋ฆฌ๊ฐ 5๋งํผ ๋จ์ด์ ธ ์๋ ์ฅ์๋ก ๊ฐ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ ์ฌ๋ฌ ๊ฐ์ง์
๋๋ค.
- ์ฒ์ ์์น 0 ์์ 5 ์นธ์ ์์ผ๋ก ์ ํํ๋ฉด ๋ฐ๋ก ๋์ฐฉํ์ง๋ง, ๊ฑด์ ์ง ์ฌ์ฉ๋์ด 5 ๋งํผ ๋ญ๋๋ค.
- ์ฒ์ ์์น 0 ์์ 2 ์นธ์ ์์ผ๋ก ์ ํํ ๋ค์ ์๊ฐ์ด๋ ํ๋ฉด (ํ์ฌ๊น์ง ์จ ๊ฑฐ๋ฆฌ : 2) x 2์ ํด๋นํ๋ ์์น๋ก ์ด๋ํ ์ ์์ผ๋ฏ๋ก ์์น 4๋ก ์ด๋ํฉ๋๋ค. ์ด๋ 1 ์นธ์ ์์ผ๋ก ์ ํํ๋ฉด ๋์ฐฉํ๋ฏ๋ก ๊ฑด์ ์ง ์ฌ์ฉ๋์ด 3 ๋งํผ ๋ญ๋๋ค.
- ์ฒ์ ์์น 0 ์์ 1 ์นธ์ ์์ผ๋ก ์ ํํ ๋ค์ ์๊ฐ์ด๋ ํ๋ฉด (ํ์ฌ๊น์ง ์จ ๊ฑฐ๋ฆฌ : 1) x 2์ ํด๋นํ๋ ์์น๋ก ์ด๋ํ ์ ์์ผ๋ฏ๋ก ์์น 2๋ก ์ด๋๋ฉ๋๋ค. ์ด๋ ๋ค์ ์๊ฐ์ด๋ ํ๋ฉด (ํ์ฌ๊น์ง ์จ ๊ฑฐ๋ฆฌ : 2) x 2 ๋งํผ ์ด๋ํ ์ ์์ผ๋ฏ๋ก ์์น 4๋ก ์ด๋ํฉ๋๋ค. ์ด๋ 1 ์นธ์ ์์ผ๋ก ์ ํํ๋ฉด ๋์ฐฉํ๋ฏ๋ก ๊ฑด์ ์ง ์ฌ์ฉ๋์ด 2 ๋งํผ ๋ญ๋๋ค.
์์ 3๊ฐ์ง ๊ฒฝ์ฐ ๊ฑฐ๋ฆฌ๊ฐ 5๋งํผ ๋จ์ด์ ธ ์๋ ์ฅ์๋ก ๊ฐ๊ธฐ ์ํด์ 3๋ฒ์งธ ๊ฒฝ์ฐ๊ฐ ๊ฑด์ ์ง ์ฌ์ฉ๋์ด ๊ฐ์ฅ ์ ์ผ๋ฏ๋ก ๋ต์ 2๊ฐ ๋ฉ๋๋ค.
์ ํ ์ฌํญ- ์ซ์ N: 1 ์ด์ 10์ต ์ดํ์ ์์ฐ์
- ์ซ์ K: 1 ์ด์์ ์์ฐ์
๐ก ์์ด๋์ด
n์ด ์ง์์ธ ๊ฒฝ์ฐ, ํ์์ธ ๊ฒฝ์ฐ๋ฅผ ๋๋ ์ 0์์ ๋ถํฐ ์์ํ๋๊ฒ ์๋๋ผ n์์ ๋ถํฐ ์์ํด์ 0์ผ๋ก ์ค๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ค.
n์ด ์ง์์ด๋ฉด 2๋ก ๋๋ ์ ์๊ฐ์ด๋ ํ๋ฏ๋ก ๊ฑด์ ์ง ์ฌ์ฉ๋์ ๋์ง ์๊ณ , n์ด ํ์๋ฉด -1ํด์ค์ ๊ฑด์ ์ง ์ฌ์ฉ๋์ +1 ํด์ค ๋ค์์ ์ง์๊ฐ ๋ n์ ๋ค์ 2๋ก ๋๋ ์ ์๊ฐ์ด๋ ํ๋ค.
n์ด 0์ด ๋ ๋๊น์ง ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
โ๏ธ ํ์ด
function solution(n){
var ans = 0;
while(n !== 0){
if(n % 2 === 0){
n /= 2;
}
else {
ans++;
n--;
}
}
return ans;
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - H-index (0) | 2023.02.22 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฉ๋ฆฌ๋ฐ๊ธฐ (0) | 2023.02.21 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - N๊ฐ์ ์ต์๊ณต๋ฐฐ์ (0) | 2023.02.17 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์์ ๋์งํ (0) | 2023.02.17 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๊ตฌ๋ช ๋ณดํธ (0) | 2023.02.17 |