코로나 바이러스로 세상이 흉흉하다. 파이썬 문제를 풀자.

백준 문제를 푸는데 '브루트 포스' 알고리즘 개념이라는 새로운 개념이 나와 정리한다.

먼저 브루트 포스(brute force)의 사전적 의미는 '무차별 대입해 억지로 문제를 푸는 억지 기법'이다. 다른 말로 하면 완전탐색. 즉, 문제를 풀기 위해 가능한 모든 경우의 수를 탐색해 답을 찾는 방식이다.

브루트 포스 알고리즘의 장점은 예외 없이 답을 찾아준다는 것이다. 절대 틀릴 일 없는 강력한 알고리즘이다. 물론 단점도 있으니, 모든 경우의 수를 탐색하기 때문에 시간이 최대로 걸린다는 것이다. 한 마디로 '무식하지만 강력한' 알고리즘이 브루트 포스 알고리즘이다.

브루트 포스 알고리즘을 잘 이해하기 위해서는 함께 자주 등장하는 itertools 라이브러리를 알면 좋다.



참고한 자료 :
-  알고리즘 기법[전체 탐색] = 브루트 포스(brute force) from HCR Daily by 무슨 닉네임 할까
- Python(파이썬) 기본 - 40. itertools 모듈과 iterable에 유용한 내장함수 / Suwoni-Codelab
- 순열과 조합 - combinations, permutations / 프로그래머스