반응형
https://school.programmers.co.kr/learn/courses/30/lessons/120878#
최대공약수를 구해본 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. gcd_val선언 후 유클리드 호제법으로 최대공약수를 구한 값을 저장합니다.
2. 기약분수로 만들기 위해 a, b를 gcd_val로 정수 나누기 해 갱신합니다.
📔 풀이과정
1. 5로 나눠지는 동안 b를 5로 나눠줍니다.
2. 2로 나눠지는 동안 b를 2로 나눠줍니다.
📔 정답 출력 | 반환
b가 1이하인 경우 2,5의 소인수로만 구성된 수 이거나 정수이므로 1을, 아니라면 2를 반환합니다.
📕 Code
📔 Python3
def gcd(a, b):
if b == 0:
return a
return gcd(b, a%b)
def solution(a, b):
gcd_val = gcd(a,b)
a = a // gcd_val
b = b // gcd_val
while b % 5 == 0:
b /= 5
while b % 2 == 0:
b /= 2
if b <= 1:
return 1
return 2
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(Python3) - 프로그래머스(코딩테스트 입문) : 다항식 더하기 (0) | 2024.11.03 |
---|---|
(Python3) - 프로그래머스(코딩테스트 입문) : 평행 (0) | 2024.11.03 |
(Python3) - 프로그래머스(코딩테스트 입문) : 등수 매기기 (1) | 2024.11.03 |
(Python3) - 프로그래머스(코딩테스트 입문) : 로그인 성공? (0) | 2024.11.03 |
(Python3) - 프로그래머스(코딩테스트 입문) : 치킨 쿠폰 (0) | 2024.11.03 |