본문 바로가기
프로그래머스 문제풀어보기

[Lv.0] 분수의 덧셈

by dantriss 2023. 4. 5.


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

두 분수의 합은 분모끼리 곱하고 , 분자엔 분모에 곱한값을 곱한후 나온 값을 더한 후 나온 분자와 분모의 공통된 약수로 나누면 된다.

이 공식을 이용해 약수로 나누기전 int a엔 분자 Int b엔 분모를 넣어주었다.

 

반복문을 활용해 분자 a의 약수들을 구한다.

분자 본인은 무조건 약수로 가지기 때문에 a-1부터 시작해서 2까지 반복하고 증감연산자로 int i의 값을 1씩 빼준다.

분자와 분모 둘다 나눌 수 있는 약수를 구해야하기 때문에 조건식에 분자 a를 나눠 나머지값이 0이고 분모 b를 나눠 나머지값이 0인 i 값을 구한다.

그 후 분자 a 와 분모 b를 i로 나눈값을 넣어주고, 분자와 분모를 순서대로 담은 배열로 리턴해주어야하기 때문에 

int 배열 answer에 분자 a 분모 b를 지정해서 선언해주고 리턴시켜준다.

 

 

class Solution {
    public int[] solution(int numer1, int denom1, int numer2, int denom2) {
        int a = (numer1 * denom2) + (numer2 * denom1); 
        int b = denom1 * denom2;
        
        
        
        for(int i = a-1; i >1; i--) {
            
            if(a % i == 0 && b % i == 0) { 
                a /= i;
                b /= i;
            }
        }
        
        int[] answer = { a, b };
        return answer;
    }
}

'프로그래머스 문제풀어보기' 카테고리의 다른 글

[Lv.0] 팩토리얼  (0) 2023.04.05
[Lv.0] 옹알이(1)  (0) 2023.04.04
[Lv.0] 다음에 올 숫자  (0) 2023.04.04
[Lv.0] 문자열 계산하기  (0) 2023.04.01
[Lv.0] 숨어있는 숫자의 덧셈 (2)  (0) 2023.03.23

댓글