๋ฌธ์
์ฒซ ๋ฒ์งธ ๋ถ์์ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๋ปํ๋ numer1, denom1, ๋ ๋ฒ์งธ ๋ถ์์ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๋ปํ๋ numer2, denom2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ ๋ถ์๋ฅผ ๋ํ ๊ฐ์ ๊ธฐ์ฝ ๋ถ์๋ก ๋ํ๋์ ๋ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ์์๋๋ก ๋ด์ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
์ ํ์ฌํญ
- 0 <numer1, denom1, numer2, denom2 < 1,000
์ ์ถ๋ ฅ ์
numer1 | denom1 | numer2 | denom2 | 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 ํฉ๋๋ค.
ํ์ด
์ด ๋ฌธ์ ๋ ์ต๋๊ณต์ฝ์๋ฅผ ํ์ฉํด์ผํ๋ ๋ฌธ์ ์ด๋ค.
์ฒ์ ์๋ฌ ์ฝ๋
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer = new int[2];
if(denom1 > denom2){
//denom2๊ฐ denom1์ ๋ฐฐ์์ผ ๋
if(denom1%denom2 == 0) {
answer[0] = numer1 + (denom1/denom2)*numer2;
answer[1] = denom1;
}else{
answer[0] = (denom2*numer1 + denom1*numer2);
answer[1] = (denom1*denom2);
}
}else if(denom1 < denom2){
if(denom2%denom1 == 0){
answer[0] = (denom2/denom1)*numer1 + numer2;
answer[1] = denom2;
}else{
answer[0] = (denom2*numer1 + denom1*numer2);
answer[1] = (denom1*denom2);
}
}else{
//denom1๊ณผ denom2๊ฐ ๊ฐ์ ๋
answer[0] = numer1 + numer2;
answer[1] = denom1;
}
return answer;
}
}
์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฝ๋์ด๋ค.
! ๋ฌธ์ : ์ฃผ์ด์ง ํ ์คํธ์ผ์ด์ค 2๊ฐ๋ ํต๊ณผํ์ผ๋, ์ ์ถ ์ 15๊ฐ์ค 5๊ฐ์ ํ ์คํธ๋ง ํต๊ณผํ์๋ค.
! ์์ธ: ์ ์ถ๋ ฅ ์์์ ์๋ ๋ฌธ์ ๋ง ๊ฐ์ง๊ณ ํด๊ฒฐํ๋ ค๋ค๋ณด๋ ๋๋ฌด ํ๋ฉด์ ์ธ ๋ฌธ์ ๋ง ํด๊ฒฐํ๋ ค ํ๋ค.
๋ํ, ๊ธฐ์ฝ ๋ถ์์ ์กฐ๊ฑด์ ๊น๋นกํ๋ค.
๋ฐ๋ผ์ ๊ธฐ์ฝ๋ถ์ ์กฐ๊ฑด์ ๋ง์กฑ ์ํค๊ธฐ ์ํด ๋ชจ๋ ์ฝ๋๋ฅผ ๊ฐ์์์๋ค.
์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์ฝ๋๋ฅผ ํ์ฉํ์ฌ, ๊ตฌํ ๊ฒฐ๊ณผ ๊ฐ์ ์ต๋๊ณต์ฝ์๋ก ์ฝ๋ถํ์ฌ ๊ธฐ์ฝ๋ถ์๋ฅผ ๋ง๋ค์๋ค.
*์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์ฝ๋๋ ์๋ ๊ธ์ ์ฐธ๊ณ ํ๋ฉด ๋๋ค.
์ต์ข ์ฝ๋
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer = new int[2];
answer[0] = (denom2*numer1 + denom1*numer2);
answer[1] = (denom1*denom2);
//์ต๋๊ณต์ฝ์ ๊ตฌํ๊ธฐ
int min = (answer[0]<answer[1]) ? answer[0] : answer[1];
int gcd=1;
for(int i=1; i<=min; i++){
if(answer[0]%i==0 && answer[1]%i==0){
gcd = i;
}
}
answer[0] = answer[0] / gcd;
answer[1] = answer[1] / gcd;
return answer;
}
}
'๐ Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ๋ชจ์ค๋ถํธ(1)(์๋ฐ) (0) | 2023.03.27 |
---|---|
[Programmers] ๋ฐ๋ณต๋ฌธ ์ถ๋ ฅํ๊ธฐ(์๋ฐ) (0) | 2023.03.25 |
[Programmers] ํผ์ ๋๋ ๋จน๊ธฐ(2)(์๋ฐ) (0) | 2023.03.21 |
[Programmers] ์ต๋น๊ฐ ๊ตฌํ๊ธฐ(์๋ฐ) (0) | 2023.03.20 |
[Programmers] ๋ ์์ ๋๋์ (์๋ฐ) (2) | 2023.03.17 |