๋ฐ์ํ
๋ฌธ์
๋ถ์ A/B๋ ๋ถ์๊ฐ A, ๋ถ๋ชจ๊ฐ B์ธ ๋ถ์๋ฅผ ์๋ฏธํ๋ค. A์ B๋ ๋ชจ๋ ์์ฐ์๋ผ๊ณ ํ์.
๋ ๋ถ์์ ํฉ ๋ํ ๋ถ์๋ก ํํํ ์ ์๋ค. ๋ ๋ถ์๊ฐ ์ฃผ์ด์ก์ ๋, ๊ทธ ํฉ์ ๊ธฐ์ฝ๋ถ์์ ํํ๋ก ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๊ธฐ์ฝ๋ถ์๋ ๋ ์ด์ ์ฝ๋ถ๋์ง ์๋ ๋ถ์๋ฅผ ์๋ฏธํ๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค๊ณผ ๋์งธ ์ค์, ๊ฐ ๋ถ์์ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๋ปํ๋ ๋ ๊ฐ์ ์์ฐ์๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค. ์ ๋ ฅ๋๋ ๋ค ์์ฐ์๋ ๋ชจ๋ 30,000 ์ดํ์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๊ตฌํ๊ณ ์ ํ๋ ๊ธฐ์ฝ๋ถ์์ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๋ปํ๋ ๋ ๊ฐ์ ์์ฐ์๋ฅผ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ถ๋ ฅํ๋ค.
ํ์ด
// ํ์ด : https://whkakrkr.tistory.com
#include <iostream>
#include <vector>
#include <set>
using namespace std;
// ์ต๋๊ณต์ฝ์
int getGcp(int a, int b) {
return a==0 ? b : getGcp(b%a, a);
}
// ์ต์๊ณต๋ฐฐ์
int getLcm(int a, int b) {
int gcp = getGcp(a, b);
return a*b/gcp;
}
// ์ฝ๋ถ
void getReduced(int &ja, int &mo) {
int gcp = getGcp(ja, mo);
ja /= gcp;
mo /= gcp;
}
int main() {
ios_base::sync_with_stdio(false);
cout.tie(NULL);
cin.tie(NULL);
int a,b,c,d;
cin >> a >> b >> c >> d;
// (1) ๊ฐ ๋ถ์ ์ฝ๋ถํ๊ธฐ
getReduced(a,b);
getReduced(c,d);
// (2) ํต๋ถํ๊ธฐ
int lcm = getLcm(b,d);
a *= lcm/b;
c *= lcm/d;
// (3) ๋ํ๊ธฐ
int ja = a+c;
int mo = lcm;
// (4) ๋ํด์ ๋์จ ๋ถ์ ์ฝ๋ถ
getReduced(ja, mo);
cout << ja << " " << mo;
return 0;
}
๋ฐ์ํ
'๐ฆ Changgo > [BOJ] ๋จ๊ณ๋ณ๋ก ํ์ด๋ณด๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 4134๋ฒ: ๋ค์ ์์ (Silver IV) (0) | 2025.01.16 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 1934๋ฒ: ์ต์๊ณต๋ฐฐ์ (Bronze I) (0) | 2025.01.13 |
[BOJ][C++] ๋ฐฑ์ค 11478๋ฒ: ์๋ก ๋ค๋ฅธ ๋ถ๋ถ ๋ฌธ์์ด์ ๊ฐ์ (Silver III) (0) | 2025.01.09 |
[BOJ][C++] ๋ฐฑ์ค 25305๋ฒ: ์ปคํธ๋ผ์ธ (Bronze II) (0) | 2025.01.08 |
[BOJ][C++] ๋ฐฑ์ค 24313๋ฒ: ์๊ณ ๋ฆฌ์ฆ ์์ - ์ ๊ทผ์ ํ๊ธฐ 1 (Silver V) (0) | 2025.01.07 |