프로그래머스코딩테스트연습풀이/C언어
[프로그래머스/C언어] 분수의 덧셈
코코쵸마
2023. 8. 4. 11:23
문제
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
솔루션
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int* solution(int numer1, int denom1, int numer2, int denom2) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int* answer = (int*)malloc(2*sizeof(int));
answer[0] = numer1*denom2+numer2*denom1;
answer[1] = denom1*denom2;
for(int i = answer[0]; i >= 2; i--)
if(answer[0] % i == 0 && answer[1] % i == 0)
{
answer[0] /= i;
answer[1] /= i;
}
return answer;
}
https://school.programmers.co.kr/learn/courses/30/lessons/120808