https://www.acmicpc.net/problem/2168
2168번: 타일 위의 대각선
첫째 줄에 가로의 길이 xcm와 세로의 길이 ycm가 주어진다. x와 y는 1,000,000,000 이하의 자연수이다. x와 y 사이에는 빈칸이 하나 이상 있다.
www.acmicpc.net
오늘 윈터코딩 테스트에 나왔던 첫번째 문제다. 윈터코딩에서는 사용할 수 있는 정사각형의 갯수를 물었지만 문제에서는 대각선이 그어지는 정사각형의 갯수를 물었다. 규칙은 다음과 같다. 규칙 찾는데 하루종일 걸린 것 같다.
ex1). 가로 4, 세로 6
최대 공약수 : 2
대각선이 그려지는 정사각형 : 4 + 6 - 2 = 8
ex2). 가로 3, 세로 5
최대 공약수 : 1
대각선이 그려지는 정사각형 : 3 + 5 - 1 = 14
ex3). 가로 8, 세로 12
최대 공약수 : 4
대각선이 그려지는 정사각형 : 8 + 12 - 4 = 16
#include <iostream>
using namespace std;
//최대 공약수, 재귀 호출을 이용
int gcd(int x, int y) {
if (y == 0) {
return x;
}
else {
return gcd(y, x % y);
}
}
int main() {
long long int m, n;
long long int g;
cin >> m >> n;
g = gcd(m, n);
cout << m + n - g; //가로 + 세로 - 최대공약수를 하면 답이 나온다.
}
'백준' 카테고리의 다른 글
백준13413 - 오셀로 재배치 (0) | 2019.10.29 |
---|---|
백준2436 - 공약수 (0) | 2019.10.27 |
백준1461 - 도서관 (0) | 2019.10.26 |
백준4158 - CD (0) | 2019.10.11 |
백준1986 - 체스 (0) | 2019.10.10 |