<aside> ๐ Contents
</aside>
DFS์ BFS๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ์ฌ๊ท๋ฅผ ํ์์ ์ผ๋ก ์ดํดํด์ผํ๋ค. ๋๋ ์์ง ์ฌ๊ทํจ์๋ฅผ ์ด๋ป๊ฒ ๋๋ ค์ ๊ฒฐ๊ณผ๊ฐ์ ์ฐพ์ผ๋ฉด ๋๊ฒ๋ค! ์ถ์ ๊ฐ์ด ์์ง ์๋คโฆ.. ์ด๋ป๊ฒ ๋ค๋ค ์ด๊ฑธ ๊ทธ๋ ๊ฒ ๋นจ๋ฆฌ๋นจ๋ฆฌ ๋จธ๋ฆฌํ์ ์ ํ์๋๊ฒ์ธ์ง..
์ฌ๊ทํจ์๋, ์๊ธฐ ์์ ์ ๋ค์ ํธ์ถํ๋ ํจ์๋ฅผ ์๋ฏธํ๋ค. (์ณ ์ด๊ฑด ๋๋ ์์)
๋ผ์ด๋ธ ์ฝ๋ฉ์์ โํฉํ ๋ฆฌ์ผโ ํน์ โํผ๋ณด๋์น ์์ดโ ์์์? ๊ทธ๊ฑฐ ๊ตฌํํ๋ฒ๋ง ํด๋ณผ๋์? ์ด๋ฐ์์ผ๋ก ์งํ๋๋ ๊ฒฝ์ฐ๋ ์๋ค. (์ฃผ๋ณ์์ ๊ทธ๋ฌ์์!) ๊ทธ๋์ ๋ํ์ ์ผ๋ก ์ด๋ป๊ฒ ๊ตฌํํ ๊ฒ์ธ์ง ์์๋๋ ๊ฒ๋ ์ค์ํ ๊ฒ ๊ฐ๋ค.
func factorial(num: Int) -> Int {
var result = 1
for i in 2...num {
result *= i
}
return result
}
์ฌ๊ท๋ก ๊ตฌํํ๊ธฐ
์ฌ๊ท ์์ด๋์ด๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค. ์์ ๋ฌธ์ ๋ค์ ๋จผ์ ํด๊ฒฐํด์ฃผ๋ฉด์ ์ฐจ๋ก๋๋ก ์ฌ๋ผ์ค๋ฉด ๋๋ค.
func factorial(num: Int) -> Int {
if num == 1 {
return 1
}
return num * factorial(num: num-1)
}
์์ด 1, 1, 2, 3, 5,,, ๋ฅผ ๊ตฌํํ๊ณ num์ ์๊ณ ์ถ์ ์์น index๋ฅผ ๋ฃ์ผ๋ฉด ๊ทธ ์๋ฅผ ์๋ ค์ค๋ค
func fibonacci(num: Int) -> Int {
if num == 1 || num == 2 {
return num
}
var a = 1
var b = 1
var result = 0
for _ in 3...num {
result = a + b
a = b
b = result
}
return result
}