input = [a,b,c]
count = 0;
func permutation(arr) {
for i : 0 ~ arr.length, i++
for j : 0 ~ arr.length, j++
if i == j continue;
for k : 0 ~ arr.length, k++
if i == k continue;
if j == k continue;
print( arr[i], arr[j], arr[k] )
count++
}
์์ด์ ๊ฑฐ๋ญํ ์๋ก ์ด๋ฏธ ์ฌ์ฉํ ์์๋ฅผ continue๋ก ๋ง์์ ์ฐ์ง ๋ชปํ๊ฒ ํ๋ ๋ฐฉ์์ด๋ค.
ํ์ง๋ง ์์ด ๊ธธ์ด๊ฐ ๊ธธ์ด์ง์๋ก for๋ฌธ์ ํ๋์ฉ ์ถ๊ฐํด์ ์ค์ฒฉํด์ผํ๋ค๋ ๋จ์ ์ด ์๋ค.
๋ฐ๋ผ์ ์ฌ๊ท์ ์ผ๋ก ๊ตฌํํ๋ฉด ์ข๋ค.
ํจ์๊ฐ ํธ์ถ๋ ๋ ์์ ์ธ๋ฑ์ค s์ ๋ฝ์ ๊ฐ์ r๋ฅผ ์ง์ ํด์ค๋ค.
์์์ธ๋ฑ์ค s ์ ์ง์ ํด์ฃผ๋๊ฐ? ์ด๋ฏธ ์ ํํ ์์๋ฅผ ์ ํํ์ง ์๊ฒ ํ๋ ค๊ณ
๊ณผ์
s = 0, r = 2 [ 'a', ]
s = 1, r = 2, i = 1 [ 'a', 'b' ](ํ๋ฒ ํ๊ณ ๋ด๋ ค๊ฐ์ i = s์ด๋ฏ๋ก)
s = 2, r = 2 ['a', 'b', 'c'](๋ง์ง๋ง ์์๋ ์ด๋ฏธ ์ ํด์ ธ ์์ผ๋ฏ๋ก ๋ฐ๋ก ์ถ๋ ฅ)
return;
s = 1, r = 2, i = 2 [ 'a', 'c' ] ์์ ์์๋ณต๊ท๋ฅผ ํ๊ณ ๋์ for๋ฌธ์ ๋ค์ ๋ฃจํ๊ฐ ๋๋ค๋ฉด. i++๋์ด ์ค์๋ ์งํ๋๋ค.
s = 2, r = 2 [ 'a', 'c', 'b' ]
return
(...)