본문 바로가기

모두의 알고리즘 with 파이썬2

05. 최대공약수 구하기 두 자연수 a와 b의 최대공약수를 구하는 알고리즘을 만들어보자. 최대공약수 (Greatest Common Divisor, SCD) : 두 개 이상의 정수의 공통 약수 중에서 가장 큰 값을 의미 ① 두 수의 약수 중에서 ②공통된 것을 찾아 ③그 값 중 최댓값인 것을 찾아야 한다. 최대공약수 알고리즘 GCD 성질을 떠올리며 다음 알고리즘을 생각해 보자. 두 수 중 더 작은 값을 i에 저장 i가 두 수의 공통된 약수인지 확인 공통된 약수이면 이 값을 결과값으로 돌려주고 종료 공통된 약수가 아니면 i를 1만큼 감소시키고 2번으로 돌아가 반복(1은 모든 정수의 약수이므로 i가 1이 되면 1을 결과값으로 돌려주고 종료) 예제 : '4'와 '6'의 GCD를 찾아보자 i에 4를 저장 4는 i로 나누어 떨어지지만, 6을.. 2020. 3. 6.
[문제 1] 1부터 n까지의 합 구하기 과제 : 1부터 n까지 연속한 정수의 합을 구하는 알고리즘을 만들기 1. 알고리즘의 중요 포인트 문제 : '1부터 n까지 연속한 숫자 합' 입력 : 'n까지'에 해당하는 n (n만 입력하면 1부터 n까지 연속한 숫자 합을 한번에 구함) 출력 : '1'부터 입력 'n'까지의 합 2. 구체적이고 명료한 계산 과정 1부터 10까지의 합을 예를 들어보자. 1더하기 2를 계산한 결과인 3을 머릿속에 기억 기억해 둔 3에 다음 숫자 3을 더해 6을 기억 기억해 둔 6에 다음 숫자 4를 더해 10을 기억 기억해 둔 10에 다음 숫자 5를 더해 15를 기억 같은 과정 반복... 기억해 둔 45에 다음 숫자인 10을 더해 55를 기억 10까지 다 더했으므로 마지막에 기억된 55를 제시 3. 1부터 n까지의 합을 구하는 .. 2020. 2. 1.