[TIL]취업 리부트 코스 Day-11

cracKey·2024년 6월 6일
0

백준 알고리즘에서 브론즈 랭크가 달렸습니다.

문제를 풀며 브루트포스라는 개념을 배웠습니다.

브루트포스

브루트포스(Brute Force)란 모든 가능한 경우의 수를 모두 탐색하여 답을 찾는 알고리즘 기법입니다.
이 방법은 문제의 가능한 모든 해를 하나하나 시도하여 정답을 찾아내는 방식으로, 가장 단순하고 이해하기 쉬운 방법 중 하나입니다. 그러나 경우의 수가 많아지면 연산량이 급격히 증가하여 비효율적일 수 있습니다.

특징

  • 단순성: 이해하고 구현하기 쉬운 방법입니다.
  • 완전성: 모든 경우의 수를 탐색하기 때문에 항상 최적해를 찾을 수 있습니다.

장점

  • 간단함: 복잡한 알고리즘을 사용하지 않고도 문제를 해결할 수 있습니다.
  • 보편성: 문제의 유형에 상관없이 적용할 수 있습니다.

단점

  • 비효율성: 경우의 수가 많아지면 계산 시간이 급격히 증가하여 현실적인 시간 내에 답을 찾기 어려울 수 있습니다.
  • 자원 소모: 많은 메모리와 연산 능력을 요구할 수 있습니다.

브루트포스의 예

  • 비밀번호 크래킹: 가능한 모든 비밀번호 조합을 시도하여 맞는 비밀번호를 찾아냅니다.
  • 순열 생성: 주어진 집합의 모든 순열을 생성하여 문제를 해결합니다.
  • 최대 수익 문제: 모든 가능한 거래 조합을 시도하여 최대 수익을 찾아냅니다.

해결한 문제

  • 10798 세로읽기
  • 2738 행렬
  • 2566 최댓값
  • 1652 누울자리

후기

파이썬 언어를 처음 시작해 브론즈 문제도 힘들었습니다.
이제 브론즈문제는 잘 풀리는 느낌이 들어 재밌는것 같습니다.
빨리 실버 랭크를 달고 싶습니다!

profile
키보드가 부서지게 / 개발공부노트

0개의 댓글