https://school.programmers.co.kr/learn/courses/30/lessons/12980
1. ๋ฌธ์
๋ชฉํ์ง์ N์ด ์ฃผ์ด์ง๋ค.
N๊น์ง ๊ฐ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฐฐํฐ๋ฆฌ ์ฌ์ฉ๋์ด ์ต์๊ฐ ๋ ๋์ ์ฌ์ฉ๋์ ์ถ๋ ฅํ๋ค.
์ ํ - ์จ ๋งํผ ๊ฑฐ๋ฆฌ + 1 -> ๋ฐฐํฐ๋ฆฌ ์ฌ์ฉ๋ + 1
์๊ฐ์ด๋ - ์จ ๋งํผ ๊ฑฐ๋ฆฌ * 2 -> ๋ฐฐํฐ๋ฆฌ ์ฌ์ฉ๋ ๊ทธ๋๋ก
N์ ์ต๋ 10์ต์ด๋ค.
2. ํ์ด
์ฒ์์๋ DFS๋ก ์ ๊ทผํ๋ค. ํ์ง๋ง N์ ์ต๋ 10์ต์ด์๊ณ , N์ด 5000์ผ ๋๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค.
๋จ๋จํ ์คํด๋ฅผ ํ๋ ์ ๊ทผ์ด์๋ค.
์ต์ํ์ ๋ฐฐํฐ๋ฆฌ ์ฌ์ฉ๋์ ๊ตฌํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์จ ๋งํผ์ ๊ฑฐ๋ฆฌ*2 ๋ฅผ ์ต๋ํ ํ์ฉํด์ผ ํ๋ค.
์ฆ, 2์ ๋ฐฐ์๋ฉด 2๋ก ์ต๋ํ ๋๋์ด ๋จ์ด์ง ๊ฐ์ ๊ตฌํ๊ณ ๊ฑฐ๊ธฐ์ ์ฌ์ฉ๋์ ๊ตฌํ๋ top-down ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์จ์ ์ด์๋ค. ์ด ๋ถ๋ถ์ ๋ค๋ฅธ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ๋ค.
3. ์ฝ๋
import java.util.*;
import java.io.*;
public class Solution {
public int solution(int n) {
int ans = 0;
while (n>0) {
if (n % 2 ==0) {
n/=2;
} else {
n--;
ans++;
}
}
return ans;
}
}
4. ์์ฝ
์์ฃผ ๊ฐ๋จํ ๋ฌธ์ ์ง๋ง ์๋กญ๊ฒ ์ ๊ทผํ๋ฉด ํ ์ ์๋ ํ๋ฅ ์ด ๋์์ง๋ ๊ฒ ๊ฐ๋ค.
bottom-up ๋ณด๋ค top-down ๋ฐฉ์์ด ๊ฒฝ์ฐ์ ์๊ฐ ๋ ์ค์ด๋ค ๋๊ฐ ์๋ค.
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์ ์์ผ๊ฐํ - Java (0) | 2023.08.19 |
---|---|
[Programmers] ์ด์ค์ฐ์ ์์ํ - Java (0) | 2023.08.17 |
[Programmers] ๊ตฌ๋ช ๋ณดํธ - Java (0) | 2023.07.10 |
[Programmers] ์นดํซ - Java (0) | 2023.07.09 |
[Programmers] ์์ด ๋๋ง์๊ธฐ - Java (0) | 2023.01.09 |