[Lv. 0] 분수의 덧셈프로그래머스/Level 02023. 4. 20. 15:22
Table of Contents
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120808
난이도 : Level.0
언어 : Kotlin
문제 설명 :
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한 사항 :
- 0 <numer1, denom1, numer2, denom2 < 1,000
입출력 예 :
number1 | number2 | number3 | number4 | result |
1 | 2 | 3 | 4 | [5, 4] |
9 | 2 | 1 | 3 | [29, 6] |
풀이 :
class Solution {
fun solution(numer1: Int, denom1: Int, numer2: Int, denom2: Int): IntArray {
val denom3 = denom1 * denom2 / gcd(denom1, denom2)
val numer3 = (denom3 / denom1) * numer1 + (denom3 / denom2) * numer2
var gcd = 0
for (i in 1 .. denom3) {
if (numer3 % i == 0 && denom3 % i == 0) {
gcd = i
}
}
return intArrayOf(numer3 / gcd, denom3 / gcd)
}
fun gcd(a: Int, b: Int): Int = if (b != 0) gcd(b, a % b) else a
}
'프로그래머스 > Level 0' 카테고리의 다른 글
[Lv. 0] 두 수의 나눗셈 (0) | 2023.04.21 |
---|---|
[Lv. 0] 숫자 비교하기 (0) | 2023.04.20 |
[Lv. 0] 배열 두배 만들기 (0) | 2023.04.20 |
[Lv. 0] 나머지 구하기 (0) | 2023.04.20 |
[Lv. 0] 중앙값 구하기 (0) | 2023.04.20 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!