알고리즘/BOJ

백준 1188번 음식 평론가

꾸준함. 2018. 9. 11. 02:25

문제 링크입니다: 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