[Python] Algorithm #04: 완전탐색과 백트래킹
이번 글에서는 완전탐색과 백트래킹을 함께 정리합니다. 완전탐색은 가능한 경우를 모두 확인하는 방법입니다.백트래킹은 그 중 의미 없는 경우를 중간에 잘라내며 탐색 효율을 높이는 방식입니다. 코딩테스트에서는 둘을 따로 쓰기도 하고, 함께 섞어서 쓰는 경우도 많습니다.1. 완전탐색이란완전탐색(Brute Force)은 가능한 모든 경우를 빠짐없이 확인하는 방법입니다.문제를 빠르게 푸는 핵심은 "모든 경우를 직접 만들어볼 수 있는가"를 판단하는 것입니다.경우의 수가 작으면 가장 확실한 방법입니다.조건이 복잡해도 일단 전부 검사하면 정답을 찾을 수 있습니다.대신 경우의 수가 너무 크면 시간 초과가 날 수 있습니다.예를 들어 숫자 3개를 골라 합을 구하거나, 문자열의 모든 부분집합을 확인하는 문제는 완전탐색으로 접근..