https://www.acmicpc.net/problem/17087
17087번: 숨바꼭질 6
수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, ..., AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이
www.acmicpc.net
수빈이의 위치 S와 동생들의 위치의 차를 num[i]에 저장해두고, num배열을 순회하면서 GCD(최대공약수)를 구한다.
코드
//17087
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int GCD(int a, int b){
while(1){
if(a%b == 0) break;
else {
int x = b;
b = a%b;
a = x;
}
}
return b;
}
int main(int argc, const char * argv[]) {
cin.tie(NULL);
ios::sync_with_stdio(0);
int n,s, num[100001];
cin >> n;
cin >>s;
for(int i=0;i<n;i++)cin>>num[i];
for(int i=0;i<n;i++){
if(num[i] > s )num[i] = num[i] - s;
else num[i] = s - num[i];
}
int sum=num[0];
for(int i=1;i<n;i++){
sum = GCD(sum, num[i]);
}
if(n == 1) {
sum = num[0];
}
cout<<sum;
return 0;
}
'코딩테스트 연습 > Baekjoon' 카테고리의 다른 글
[Baekjoon] 17298번: 오큰수 (c++) (0) | 2022.03.31 |
---|---|
[Baekjoon] 17103번: 골드바흐 파티션 (c++) (0) | 2022.03.31 |
[Baekjoon] 1676번: 팩토리얼 0의 개수 (c++) (0) | 2022.03.31 |
[Baekjon] 1373번: 2진수 8진수 (c++) (0) | 2022.03.31 |
[Baekjoon] 1212번: 8진수 2진수 (c++) (0) | 2022.03.31 |