알고리즘

[코스모스 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 값을 출력한다.