![notion image](https://www.notion.so/image/https%3A%2F%2Fs3.us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F53a5dda3-fe2e-4625-b5e9-7e8c912bf739%2FUntitled.png%3FX-Amz-Algorithm%3DAWS4-HMAC-SHA256%26X-Amz-Credential%3DAKIAT73L2G45O3KS52Y5%252F20211025%252Fus-west-2%252Fs3%252Faws4_request%26X-Amz-Date%3D20211025T151956Z%26X-Amz-Expires%3D86400%26X-Amz-Signature%3D67afc2b7663430c28b88857f2e990c70f78dd57db49c5a217aac330a94315a74%26X-Amz-SignedHeaders%3Dhost?table=block&id=8918c1f1-e009-4b56-b791-5f37dbc6b160&cache=v2)
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๋ฌธ์ ํ๋์ฉ ์ถ๊ฐํด์ ์ค์ฒฉํด์ผํ๋ค๋ ๋จ์ ์ด ์๋ค.
๋ฐ๋ผ์ ์ฌ๊ท์ ์ผ๋ก ๊ตฌํํ๋ฉด ์ข๋ค.
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3.us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ff8555f2f-c940-4afb-a6eb-8e49595a63f6%2FUntitled.png%3FX-Amz-Algorithm%3DAWS4-HMAC-SHA256%26X-Amz-Credential%3DAKIAT73L2G45O3KS52Y5%252F20211025%252Fus-west-2%252Fs3%252Faws4_request%26X-Amz-Date%3D20211025T151956Z%26X-Amz-Expires%3D86400%26X-Amz-Signature%3Dc47371f140c5a8aca883deb1df262c72d940170dc6013ba1713379d0c69bf372%26X-Amz-SignedHeaders%3Dhost?table=block&id=0f51085c-9c8b-450e-9fa4-ddf002cdb3a1&cache=v2)
ํจ์๊ฐ ํธ์ถ๋ ๋ ์์ ์ธ๋ฑ์ค 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
(...)
ย