글
프로그래머스 C# 분수의 덧셈(분자, 분모, JAVA)
프로그래밍
2022. 12. 28. 17:20
728x90
SMALL
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
'프로그래밍' 카테고리의 다른 글
프로그래머스 C# 최빈값 구하기(count, JAVA) (0) | 2022.12.28 |
---|---|
프로그래머스 C# 중앙값 구하기(int[] -> Array.Sort(), 홀수 배열만, P, J) (0) | 2022.12.28 |
프로그래머스 C# 문자 반복 출력하기(new string, Substring, P, J) (0) | 2022.12.28 |
프로그래머스 C# 짝수는 싫어요(개쉬움, P, J) (0) | 2022.12.28 |
프로그래머스 C# 배열 자르기(StringBuilder 대신, CopyOfRange) (0) | 2022.12.28 |