백준 알고리즘에서 브론즈 랭크가 달렸습니다.
문제를 풀며 브루트포스라는 개념을 배웠습니다.
브루트포스
브루트포스(Brute Force)란 모든 가능한 경우의 수를 모두 탐색하여 답을 찾는 알고리즘 기법입니다.
이 방법은 문제의 가능한 모든 해를 하나하나 시도하여 정답을 찾아내는 방식으로, 가장 단순하고 이해하기 쉬운 방법 중 하나입니다. 그러나 경우의 수가 많아지면 연산량이 급격히 증가하여 비효율적일 수 있습니다.
특징
- 단순성: 이해하고 구현하기 쉬운 방법입니다.
- 완전성: 모든 경우의 수를 탐색하기 때문에 항상 최적해를 찾을 수 있습니다.
장점
- 간단함: 복잡한 알고리즘을 사용하지 않고도 문제를 해결할 수 있습니다.
- 보편성: 문제의 유형에 상관없이 적용할 수 있습니다.
단점
- 비효율성: 경우의 수가 많아지면 계산 시간이 급격히 증가하여 현실적인 시간 내에 답을 찾기 어려울 수 있습니다.
- 자원 소모: 많은 메모리와 연산 능력을 요구할 수 있습니다.
브루트포스의 예
- 비밀번호 크래킹: 가능한 모든 비밀번호 조합을 시도하여 맞는 비밀번호를 찾아냅니다.
- 순열 생성: 주어진 집합의 모든 순열을 생성하여 문제를 해결합니다.
- 최대 수익 문제: 모든 가능한 거래 조합을 시도하여 최대 수익을 찾아냅니다.
해결한 문제
- 10798 세로읽기
- 2738 행렬
- 2566 최댓값
- 1652 누울자리
후기
파이썬 언어를 처음 시작해 브론즈 문제도 힘들었습니다.
이제 브론즈문제는 잘 풀리는 느낌이 들어 재밌는것 같습니다.
빨리 실버 랭크를 달고 싶습니다!