https://www.acmicpc.net/problem/1188
1188번: 음식 평론가
첫째 줄에 소시지의 수 N과 평론가의 수 M이 주어진다. (1 ≤ N, M ≤ 100)
www.acmicpc.net
[난이도] Gold5
[유형] 수학
[풀이]
N개의 소시지를 이어붙힌 뒤에 M등분을 해줘야 한다.
M-1번은 잘라야 하지만, 이어붙힌 소시지는 이미 N-1번 잘려있고 이 잘린 부분이
우리가 잘라야 하는 M-1번 자르는 부분과 겹칠 수 있으므로 이만큼은 M-1에서 빼줘야한다.
겹치는 부분은 (N과 M의 최대공약수)-1 이므로 정답은 M-1-(gcd(N,M)-1) = M-gcd(N,M) 이다.
#include <cstdio>
#include <algorithm>
using namespace std;
int N,M;
int gcd(int a,int b){
if(a>b) swap(a,b);
while(a>0){
int c = b%a;
b=a;
a=c;
}
return b;
}
int main(){
scanf("%d%d",&N,&M);
printf("%d",M-gcd(N,M));
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Gold5/1188.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Gold5] 9084 : 동전 (C++) (0) | 2021.06.24 |
---|---|
[BOJ/백준][Gold5] 20056 : 마법사 상어와 파이어볼 (C++) (0) | 2021.06.24 |
[BOJ/백준][Gold5] 14719 : 빗물 (C++) (0) | 2021.06.24 |
[BOJ/백준][Gold5] 10216 : Count Circle Groups (C++) (0) | 2021.06.24 |
[BOJ/백준][Gold5] 1747 : 소수&팰린드롬 (C++) (0) | 2021.06.07 |