문제 링크입니다: https://www.acmicpc.net/problem/1188
평론가들은 일인당 소시지 N/M 개의 소시지를 가져갑니다.
즉, 소시지를 N개 이어붙일 경우 (M - 1)번의 칼질이 필요합니다.
하지만, N이 M으로 나누어 떨어질 경우에는 칼질이 전혀 필요없습니다.
따라서, M - GCD(N, M)번의 칼질이 필요합니다.(최악의 경우 GCD(N, M) = 1이기 때문에 (M - 1)번의 칼질)
#include <iostream>
using namespace std;
//최대 공약수
int GCD(int a, int b)
{
if (a%b == 0)
return b;
return GCD(b, a%b);
}
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N, M;
cin >> N >> M;
cout << M - GCD(N, M) << "\n";
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
백준 10866번 덱 (0) | 2018.09.12 |
---|---|
백준 15386번 Birokracija (0) | 2018.09.11 |
백준 4179번 불 (2) | 2018.09.10 |
백준 2905번 홍준이와 울타리 (2) | 2018.09.10 |
백준 3015번 오아시스 재결합 (2) | 2018.09.08 |