프로그래밍
프로그래머스 C# 분수의 덧셈(분자, 분모, JAVA)
노마드선샤인
2022. 12. 28. 17:20
728x90
using System;
public class Solution {
public int[] solution(int denum1, int num1, int denum2, int num2) {
int[] answer = new int[2];
int min =0;
for(int i = 1;i<=denum1 * num2 + denum2 * num1;i++)
{
if((denum1 * num2 + denum2 * num1)%i == 0 && num1*num2%i ==0)
{
min = i;
}
///(denum1 * num2 + denum2 * num1)으로 i가 나뉘어 지면 약분이 되니까 그 경우에는 answer[0](분자)을 min으로 약분할 수 있어서 min의 조건에 추가가 되어 있다.
}
answer[0] = (denum1 * num2 + denum2 * num1)/min;
answer[1] = num1 * num2 / min;
return answer;
}
}
// 공약수를 조건문에서 찾는 과정에서 시간이 걸렸다.
자바
class Solution {
public int[] solution(int denum1, int num1, int denum2, int num2) {
int mother = num1 * num2;
int son1 = num1 * denum2;
int son2 = num2 * denum1;
int totalSon = son1 + son2;
for(int i = mother; i >= 1; i--)
{
if(totalSon % i == 0 && mother % i == 0)
{
totalSon /= i;
mother /= i;
}
}
int[] answer = {totalSon, mother};
return answer;
}
}
class Solution {
public int[] solution(int denum1, int num1, int denum2, int num2) {
int[] answer = new int[2];
answer[0] = denum1*num2+denum2*num1;
answer[1] = num1*num2;
int min = Math.min(answer[0],answer[1]);
int max = 1;
for(int i=1; i<=min; i++)
{
if(answer[0]%i==0 && answer[1]%i==0)
{
max= i;
}
}
answer[0] /= max;
answer[1] /= max;
return answer;
}
}
728x90