문제를 해결하기 위한 여러 방법이 있지만 구현 난이도가 가장 낮은 방법은 무식하게 푸는 것입니다. 완전 탐색이라고도 부릅니다.
재귀 함수란 자신이 수행할 작업을 유사한 형태의 여러 조각으로 쪼갠 뒤 그 중 한 조각을 수행하고, 나머지를 자기 자신을 호출해 실행하는 함수를 가리킵니다. 재귀 함수는 '더이상 쪼개지지 않는' 최소한의 작업에 도달했을 때 답을 곧장 반환하는 조건문을 포함해야 합니다. 이때 쪼개지지 않는 가장 작은 작업들을 가리켜 재귀 호출의 기저 사례라고 합니다.
설명은 간단하지만 작업을 쪼개는 기준과 기저 사례를 잘 정의하는 것이 완전 탐색으로 푸는 것의 관건입니다.
이 과정이 모든 문제에 항상 적용되는 것은 아니지만, 어떤 식으로 문제에 처음 접근해야 할지에 대한 대략적인 지침이 될 것입니다.
참고문헌: 구종만, 프로그래밍 대회에서 배우는 알고리즘 문제해결전략, 인사이트, (2012)