유클리드 호제법 유클리드 호제법은 두 수의 최대공약수를 구하는 알고리즘이다. 이 알고리즘은 두 수를 나눈 나머지를 이용해 최대공약수를 구하는 방법이다. 먼저, 큰 수를 작은 수로 나눈 나머지를 구하고, 작은 수를 이전에 구한 나머지로 나눈 나머지를 구한다. 이 과정을 나머지가 0이 될 때까지 반복하다 마지막으로 구한 나머지가 최대공약수가 된다. 조금 더 구체적으로 예를 들자면 49와 21가 있다고 생각해보자 49를 21로 나누어 떨어지지 않으니까 49를 21로 나눈 나머지 값은 7이다. 21을 7로 나누면 나누어 떨어진다.(나머지가 0이 될 때까지 반복한다는 것이 이 뜻) 즉 7이 최대공약수가 되는 것 아래 백준 문제를 풀다가 보게 된 수학공식? 알고리즘? 인데 코드로는 아래처럼 볼 수 있다. [백준] ..
브루트 포스 브루트 포스(brute force), 키 전수조사(exhaustive key search) 또는 무차별 대입(無差別代入)은 조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 암호를 해독하는 방법이다. 흔히 암호학에서 연구되나, 다른 알고리즘 분야에서도 사용되고 있다. 문제를 풀다가 리스트, 문자열 다른 방법보다 그냥 하나씩 세는게 더 빠르고 간단할 때 사용 사실 난생 처음 들어보는 단어라서 기록했다. + 추가 문자열에서 패턴 매칭이 어떤 문자열(target) 내부에 다른 문자열(pattern)이 존재하는지를 검증하는 과정을 표현하는 것인데, 이때 존재하는지 찾고자 하는 문자열을 패턴이라고 부른다. 문자열에서의 브루스 포트는 가장 기본적인 방법으로 문자열을 비교해가며 패턴 매칭을 하는 방..