728x90
728x90
브루트포스(brute force)
무식하게 푸는 방법. 완전탐색으로도 불리기도 하는데
문제를 해결하기 위해 가능한 모든 경우의 수를 계산해서 문제를 해결하는 방법이다.
모두 탐색해서 결과를 찾기 떄문에 100% 정답을 찾는다. 다만 모두 탐색해서 시간이 오래걸린다.
자료구조에 따라 2종류로 나뉜다
- 선형구조일 경우 순차탐색
- 비선형구조일경우 BFS,DFS
일단 선형구조일때를 먼저 살펴보자.
<문제해결방법>
- 주어진 문제를 '선형구조'로 구조화한다
- 구조화된 문제로 해를 구성할때까지 '순차탐색'한다.
- 탐색한 해를 주어진 문제의 출력형식에 맞게 정리한다.
언제사용하나?
데이터의 범위가 크지 않을경우 권장한다.
데이터의 범위가 크면 모든 경우의 수를 탐색하는데 시간이 오래걸리기 떄문이다.
사실 내가 코드를 짜는 대부분의 경우가 브루트포스일 것이다. 그냥 노가다..
하지만 시간상 비효율적이라고 해도 복잡한 방법으로 푸는것보다 이렇게 단순하게 푸는것도 하나의 방법이 될 수 있다
프로그래머스 대표문제
2021.05.26 - [Python] 코딩테스트 고득점Kit | 완전탐색1-모의고사
2021.05.26 - [Python] 코딩테스트 고득점Kit | 완전탐색2-소수찾기
2021.05.26 - [Python] 코딩테스트 고득점Kit | 완전탐색3-카펫
출처 참고
https://hcr3066.tistory.com/26
728x90
반응형
'🌱 Computer Science > Programming' 카테고리의 다른 글
Pycharm Black 설정 및 사용법 가이드 (1) | 2022.03.22 |
---|---|
한창 힙했던 언어 Python과 요즘 가장 힙한 언어 Rusty (0) | 2021.12.03 |
[Programming] Python과 Java 차이점 | 객체지향vs절차지향 (0) | 2021.08.04 |
[Java] LOMBOK(롬복)란? (0) | 2021.04.05 |
[Programming] JAVA(객체지향언어)특징 (0) | 2020.01.12 |
[Programming] 오버라이딩(Overriding) Vs 오버로딩(Overloading) (0) | 2020.01.12 |