알고리즘

[알고리즘] 완전탐색(Brute Force)

탱 'ㅅ' 2024. 4. 23. 18:55

백준 1816, 2503, 14568, 19532

 

Brute force = 무식한 힘

 

- 가능한 모든 경우의 수를 때려박고

- 조건에 맞다면 출력!

 

똑똑하진 않지만 힘이 센 아이

 

 

문제를 만났을 때, 기술과 아이디어를 먼저 찾으려한다면

모르는 기술과 아이디어를 만났을 때는 어떻게 풀 수 있겠는가?

 

앞으로는

어떤 문제든지

경우의 수가 보인다면

시간과 메모리만 충분히 주어질 때

완전탐색으로 그 문제를 해결할 수 있다.

 

 

더보기

완전탐색적 사고를 강요(?)하는 이유 :

근의 공식 문제를 풀어라! 라는 이야기가 나왔을 때,

근의 공식을 수학적으로 정리해서 코드로 쓸 수 있는 사람과  쓸 수 없는 사람이 존재합니다.

 

수학으로 정리해서 풀 수 없는 사람은

완전탐색적 사고를 먼저 생각해서 풀어내고, 나중에 수학적 지식을 채워나가면 됩니다.

 

반대로 수학적으로 풀 수 있는 사람은

수학적으로 풀어버린다면, 그 이후에 다른 사람에게 그 코드를 `수학을 알아야 해! ` 라고 설명할 수 밖에 없게 됩니다.

 

지금 현재 한국에서 많은 사람들은 아래의 방법으로 알고리즘을 풀고 있습니다.

그래서 모르는 문제에는 접근조차 하지 못하고, 아는 문제는 풀어낸 뒤에 깊이 있는 설명을 하지 못합니다.

 

사실 알고리즘의 본질은 그런게 아닌데 말이죠.

 

개발을 한다는 것은 기존의 코드를 점진적으로 더 좋은 코드로 변화 시켜나가는 과정이고,

알고리즘 또한 같은 이유에서, 일단 문제를 해결하고, 최적화를 해 나가는 과정이 가장 중요합니다.

처음부터 저와 함께 그런 방법을 연습한다면 안정적이고 튼튼한 알고리즘 실력을 손에 넣을 수 있습니다.

'알고리즘' 카테고리의 다른 글

[알고리즘/JS] 입력과 출력  (0) 2024.04.22