합이 8인 경우의 수가 중복되기 때문에, set을 사용해야한다.
3개의 반복문을 통해 result를 구할 수 있다.
성분의 개수가 반복문의 개수가되어 코드를 구현하는데 어려움이 생긴다
재귀함수를 사용하여 코드를 구현해보도록 하자!
특정 조건에 의해서 호출 3에서 recur()
이 호출되지 않으면 코드를 계속 읽어들여 함수가 종료된다.
이후 끝나지 않은 호출2를 그대로 읽어내려가고, 함수가 종료된다.
마찬가지로 호출1의 코드를 읽어내려가고, 함수가 종료된다.
반드시, 조건문을 활용하여 재귀함수 종료 조건을 삽입
해야한다.
if문
: index값이 배열의 길이와 동일해 졌을 때, 재귀함수가 마지막에 도달했음을 알려준다.
else문
: index값이 배열의 길이와 같지 않다면, 재귀함수를 진행한다.
ex) index값은 0부터 시작하며, data의 배열의 길이인 3과 같지 않기 때문에 재귀함수 본문이 적용된다.
배열의 성분을 중복해서 담지 않을 집합을 선언한다 result = set()
재귀함수를 호출한 뒤, print하면 동일한 결과가 출력된다.
재귀함수를 사용하면, 배열의 크기가 증가하더라도 코드가 복잡해지지 않고, 정확한 결과를 출력한다.