본문 바로가기
PYTHON

프로그래머스 코딩테스트 입문 오답노트 분수의 덧셈

by jnhn 2023. 5. 5.
[프로그래머스 코딩테스트 입문]파이썬 분수의 덧셈 

 

아니근데 이거 프로그래머스 입문문제 day2의 문제인데 진짜 여기서부터 막혀가지고 눈물이 차올라서 고갤들을뻔 했다가 질문하기 많은거 보고 안심 ㅋㅋㅋㅋ하고 아래 짤마냥 침착해졌음

정답1) for문으로 최대공약수 구하기

def solution(numer1, denom1, numer2, denom2):
    a = numer1*denom2 + numer2*denom1 #분자
    b = denom1*denom2 #분모
    #최대공약수 구하기
    result=[]
    for i in range(a,0,-1): #range(시작값, 끝값, 증가치)
        if a%i ==0 and b%i==0:
            d=i
            break
    result.append(a/d)
    result.append(b/d)

수업시간에 풀었던 최대공약수 문제를 활용해서 풀었다.

for 문 역순으로 돌리기
문법 for i in range(시작값, 끝값, 증가치)
설명 증가치에 -1를 넣으면 역순으로 하나씩 줄어감

 

정답2) fractions모듈 활용 _김현우 , Louis , 조동건 , 박호준 외 78 명

from fractions import Fraction

def solution(denum1, num1, denum2, num2):
    answer = Fraction(denum1, num1) + Fraction(denum2, num2)
    return [answer.numerator, answer.denominator]
fractions 모듈
문법 #임포트하기
from fractions import Fractions
Fraction(분자, 분모)
#분자값 출력하기
변수.numerator
#분모
변수.denominator
설명 유리수(rational number_분수형식으로 나타낼 수 있는 수)를 계산할 때 사용하는 모듈

 

정답3) 최대공약수 함수 gcd 활용_ Sehyeon Jeong , lisayang011@gmail.com , 박지연 , 박경덕 외 22 명

import math

def solution(denum1, num1, denum2, num2):
    denum = denum1 * num2 + denum2 * num1
    num = num1 * num2
    gcd = math.gcd(denum, num)
    return [denum//gcd, num//gcd]
최대공약수 gcd 최소공배수 lcm 
문법 import math
math.gcd(숫자1, 숫자2 ...)
math.lcm(숫자1, 숫자2 ...)

역시 파이썬 모듈의 세계는 공부하면 할 수록 모르는게 나오고 새롭구낭 이렇게 하나하나 알아가면 되는거지~!  처음에 내가 푼 방법이 가장 날코딩스럽닼ㅋㅋㅋㅋ 날코딩하지 말라지만,,, 일단 그래야지 실력이 느는거겠지? 오키 납득완~