알고리즘
[코스모스 2주차] 브루트포스 알고리즘
앙서녕
2024. 3. 14. 21:04
1. 브루트포스?
- 완전 탐색 알고리즘
- 가능한 모든 경우의 수를 모두 탐색하면서 요구조건에 충족되는 결과만을 가져옴
- 예외 없이 100% 확률로 정답만 출력
- 알고리즘을 설계하고 구현하기 매우 쉬움
- 복잡한 알고리즘 없이 빠르게 구현 가능
- 알고리즘의 실행 시간이 매우 오래 걸림
- 메모리 효율면에서 매우 비효율적
- 단계
- 모든 가능한 해 검사
- 해 검증
- 최적 해 선택 또는 모든 해 반환
2. 브루트포스 알고리즘
https://www.acmicpc.net/problem/19532
19532번: 수학은 비대면강의입니다
정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $-
www.acmicpc.net
'수학은 비대면 강의입니다' 백준 문제를 풀며 브루트포스 알고리즘에 대해 알아보자
Python 언어로 풀이를 해보자
- 사용자로부터 입력으로 여섯 개의 정수를 받고, 이들을 각각 a, b, c, d, e, f에 매핑한다.
- 범위가 -999부터 999까지인 두 개의 변수 i와 j에 대해 중첩된 루프를 실행한다.
- 내부 루프에서, 현재 i와 j 값을 사용하여 두 개의 선형 방정식을 만들고, 주어진 입력값인 c와 f와 비교하여 같은지 확인한다.
- 만약 두 방정식이 모두 주어진 입력값과 일치한다면, 해당 i와 j 값을 출력한다.