Posis

[프로그래머스] 분수의 덧셈 본문

알고리즘/프로그래머스

[프로그래머스] 분수의 덧셈

CooNiHong 2022. 12. 27. 02:18

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120808

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

첫 번째 분수의 분자와 분모를 뜻하는 denum1num1, 두 번째 분수의 분자와 분모를 뜻하는 denum2num2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 0 <denum1, num1denum2, num2 < 1,000

입출력 예

denum1 num1 denum2 num2 result
1 2 3 4 [5, 4]
9 2 1 3 [29, 6]

입출력 예 설명

입출력 예 #1

  • 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.

입출력 예 #2

  • 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.

나의 풀이

Java

class Solution {
    public int[] solution(int denum1, int num1, int denum2, int num2) {
        int[] answer = {0, 0};
        int top = num1 * denum2 + num2 * denum1;
        int bottom = num1 * num2;
        int lcm = 1;
        for(int i = 1; i <= bottom && i <= top; i++) {
            if(bottom%i == 0 && top%i == 0) lcm = i;
        }
        answer[0] = top / lcm;
        answer[1] = bottom / lcm;
        return answer;
    }
}

 

728x90