-
분수의 덧셈코딩 테스트/Level 0 2022. 11. 8. 15:52반응형
https://school.programmers.co.kr/learn/courses/30/lessons/120808
파이썬
gcd (최대공약수)
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
여러 결과들을 동시에 리턴할 때 파이썬은 tuple로 묶어서 전송한다.
프로그래머스의 API는 json을 이용해 답을 확인하기 때문에 튜플과 리스트를 구분하지 않는다.
위 코드도 통과되지만 정확하게 작성하는 것이 좋을 것 같다.fractions(분수) 라이브러리를 이용하면...
from fractions import Fraction def solution(denum1, num1, denum2, num2): result = Fraction(denum1, num1) + Fraction(denum2, num2) return result.numerator, result.denominator
코틀린
class Solution { fun solution(numer1: Int, denom1: Int, numer2: Int, denom2: Int): IntArray { val answer: IntArray = intArrayOf(numer1 * denom2 + numer2 * denom1, denom1 * denom2) var euclid = answer.clone() while (euclid[1] > 0) { if (euclid[0] >= euclid[1]) euclid[0] %= euclid[1] euclid = euclid.reversed().toIntArray() } return answer.map { it / euclid[0] }.toIntArray() } }
반응형