README
Algorithm
๋ฌธ์ ์ ๋ชฉ์ ํด๋ฆญํ๋ฉด, GitHub ์ฝ๋๋ก, โ๏ธ๋ฅผ ํด๋ฆญํ๋ฉด ํฐ์คํ ๋ฆฌ๋ก ์ด๋ํฉ๋๋ค.
์ฝ๋ฉํ ์คํธ ์ฐ์ต (๋ฐฑ์ค, ํ๋ก๊ทธ๋๋จธ์ค ๋ฑ) ์๊ณ ๋ฆฌ์ฆ
์์ด (nPr)
์๊ณ ๋ฆฌ์ฆ
์ํ
์์ด
์์๊ฐ ์๋ ์์์ ์งํฉ, n๊ฐ ์ค r๊ฐ๋ฅผ ๋ฝ๋ ๋ฐฉ๋ฒ
var v = [1, 2, 3]
func permutation(n: Int, r: Int, depth: Int) {
if r == depth {
print( v.map { String($0) }.joined(separator: " "))
return
}
for i in depth..<n {
v.swapAt(i, depth)
permutation(n: n, r: r, depth: depth + 1)
v.swapAt(i, depth)
}
return
}
permutation(n: 3, r: 3, depth: 0)์กฐํฉ
์์๊ฐ ์๋ ์์์ ์งํฉ, n๊ฐ ์ค r๊ฐ๋ฅผ ๋ฝ๋ ๋ฐฉ๋ฒ
์ฌ๊ทํจ์ ์ด์ฉ
๋ฐ๋ณต๋ฌธ ์ฌ์ฉ
์ต๋๊ณต์ฝ์
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ ์ด์ฉ
์ต์๊ณต๋ฐฐ์
์์ ์ฐพ๊ธฐ
์๋ผํ ์คํ ๋ค์ค์ ์ฒด(n <= 1,000,000)
์ ๊ณฑ๊ทผ ํ์ฉ
๋์ ํฉ
Swift์ ๋ด์ฅํจ์
์๋ฃ๊ตฌ์กฐ
Stack
Swift์ ๋ฐฐ์ด ์์ฒด๋ฅผ Stack์ฒ๋ผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฒ ์คํธ์ธ๋ฏ! (๊ตณ์ด ๋ง๋ค ํ์ ์์ ๊ฒ ๊ฐ๋ค.)
์ฝ์ ์ญ์ ๋ชจ๋ O(1)
Last updated