2023. 11. 17. 11:58ใ์ธํ๋ฐ/์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ฌธ : ์ฝ๋ฉํ ์คํธ ๋๋น
https://hyejin.tistory.com/1252
-> ์ด์ ๋ฌธ์ ํ์ด
2. ์ด์ง์ ์ถ๋ ฅ
์ค๋ช
10์ง์ N์ด ์ ๋ ฅ๋๋ฉด 2์ง์๋ก ๋ณํํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๋จ ์ฌ๊ทํจ์๋ฅผ ์ด์ฉ ํด์ ์ถ๋ ฅํด์ผ ํฉ๋๋ค.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ 10์ง์ N(1<=N<=1,000)์ด ์ฃผ์ด์ง๋๋ค
์ถ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ์ด์ง์๋ฅผ ์ถ๋ ฅํ์ธ์.
์์ ์ ๋ ฅ 1
11
์์ ์ถ๋ ฅ 1
1011
๋ฌธ์ ํ์ด 1
public void DFS(int n)
{
if (n == 0) return;
else {
DFS(n / 2);
System.out.print(n % 2+"");
}
}
๐พ : ์ด ๋ฌธ์ ๋ ์ฃผ์ด์ง ์ซ์ n์ ๋ํด์ 2์ง์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
2์ง์๋ ์ฃผ์ด์ง ์ซ์์ ๋๋๊ธฐ 2ํ ๊ฐ์ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํด์ฃผ๋ฉด ๋๋ค.
์์์ธ 11์ ๋ณด๋ฉด DFS(11) -> DFS(5) -> DFS(2) -> DFS(1) ์ด๋ ๊ฒ ์ฌ๊ทํจ์๋ฅผ ํธ์ถํด์ฃผ๋ฉด์ 2๋ก ๋๋ ๋๋จธ์ง ๊ฐ์ ์ถ๋ ฅํด์ฃผ๋ฉด ๋๋ค.
๋ฐ์ ๊ทธ๋ฆผ์ ๊ฐ์์์ ์ค๋ช ์ค ๊ทธ๋ฆฐ ์คํ ์บก์ณ ํ๋ฉด์ด๋ค..
๋งจ ์ฒ์์๋ DSF(11)์ ํธ์ถํ๊ธฐ ๋๋ฌธ์ ์คํ์ ๊ฐ์ฅ ๋จผ์ ์์ด๊ณ , ํจ์๊ฐ ๋๋๊ธฐ์ ์ ์๊ธฐ ์์ ์ ๋ค์ ํธ์ถํ๊ธฐ ๋๋ฌธ์ 6๋ผ์ธ๊น์ง๋ง ์ํํ๊ณ DFS(5)์ ํธ์ถํ๋ค.
์คํ์ DFS(5)๊ฐ ์์ด๊ณ , ์ํํ๋๋ฐ ๋ง์ฐฌ๊ฐ์ง๋ก DFS(2)๋ฅผ ํธ์ถํ๊ธฐ ๋๋ฌธ์ 6๋ผ์ธ๊น์ง๋ง ํ๊ณ , DFS(2)๋ฅผ ํธ์ถํ๋ค.
๋์ผํ๊ฒ DFS(2) -> DFS(1) ๊น์ง ํธ์ถํ ๋ค์, DFS(0)์์๋ return ํ๊ธฐ ๋๋ฌธ์ ํจ์๊ฐ ์ข ๋ฃ๋์๊ณ ,
๋ค์ DFS(1)๋ก ๋์์์ 6๋ผ์ธ ๋ค์๋ถํฐ ํจ์๋ฅผ ์คํํ๋ค. ๋ฐ๋ผ์ n % 2 ํ ๊ฐ์ด ์ถ๋ ฅ๋๊ณ ์ข ๋ฃ๋๋ค. -> 1
DFS(2) ๋ก ๋์ด์์ n % 2 ํ ๊ฐ์ธ 0์ ์ถ๋ ฅํ๊ณ ํจ์ ์ข ๋ฃํ๋ค. -> 0
DFS(5) ์์๋ n % 2 ํ ๊ฐ์ธ 1 ์ ์ถ๋ ฅํ๊ณ ํจ์ ์ข ๋ฃํ๊ณ -> 1
DFS(11)์์๋ n % 2 ํ ๊ฐ์ธ 1์ ์ถ๋ ฅํ๊ณ ํจ์ ์ข ๋ฃํ๋ค. -> 1
๋ฐ๋ผ์ ๊ฒฐ๊ณผ์ธ 1011์ด ์ถ๋ ฅ๋๋ค!