PS/BOJ
[알고리즘] 백준 14490번: 백대열 (C++)
도비(Doby)
2021. 11. 30. 21:28
https://www.acmicpc.net/problem/14490
14490번: 백대열
n과 m이 :을 사이에 두고 주어진다. (1 ≤ n, m ≤ 100,000,000)
www.acmicpc.net
1) 문자열로 입력받아서 while문을 통해 정수로 바꿔주기
2) stoi()를 이용해 문자열 -> 숫자
3) 유클리드 호제법을 이용하여 최대공약수 구하기
4) 두 수에 나눠준 몫을 출력
#include <iostream>
#include <string>
using namespace std;
int gcd(int a, int b) {
if (a % b == 0) {
return b;
}
return gcd(b, a % b);
}
int main() {
string value;
cin >> value;
string a, b;
int cnt = 0;
while (value[cnt] != ':') {
a += value[cnt];
cnt++;
}
cnt++;
while (cnt < value.size()) {
b += value[cnt];
cnt++;
}
int A = stoi(a);
int B = stoi(b);
int gcdValue = gcd(A, B);
cout << A / gcdValue << ':' << B / gcdValue;
return 0;
}