PS

BOJ 1188 - 음식 평론가

728x90

www.acmicpc.net/problem/1188

 

1188번: 음식 평론가

첫째 줄에 소시지의 수 N과 평론가의 수 M이 주어진다. (1 ≤ N, M ≤ 100)

www.acmicpc.net

 

 

이 문제는, 최대 공약수를 활용하는 문제이다.

N 개의 소시지들을 한 줄로 다 이어 붙인다고 생각해보면

M 명에게 동등한 양을 주기 위해서는 N / M 개 만큼 줘야한다.

그러나 예외 사항으로, N 이 M 으로 나눠 떨어진다면 자를 필요가 없다 (ex) N = 6, M = 6

M - gcd(N, M) 을 하면 이에 대한 답을 구할 수 있다.

 

 

최대 공약수를 쓴다는것을 생각해내기는 꽤나 어려운것 같아서 쉬운 문제는 아닌것 같다

 

 

- c++

#include <iostream>
 
using namespace std;
 
int n, m;
 
int gcd(int a, int b) { return a % b == 0 ? b : gcd(b, a % b); } 
 
int main() {
    cin.tie(0); ios_base::sync_with_stdio(0);
    
    cin >> n >> m;
    
    cout << m - gcd(m, n);
    
    return 0;
}
cs

 

 

728x90

'PS' 카테고리의 다른 글

BOJ 10165 - 버스 노선  (0) 2021.01.23
BOJ 17136 - 색종이 붙이기  (0) 2021.01.23
BOJ 1034 - 램프  (0) 2021.01.20
BOJ 1937 - 욕심쟁이 판다  (0) 2021.01.17
BOJ 15999 - 뒤집기  (0) 2021.01.17