티스토리 뷰

백준/실버

[백준 17087번] 숨바꼭질 6 (C++)

게임개발기원 2025. 4. 13. 22:40

문제링크 : https://www.acmicpc.net/problem/17087

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int N, S;
int arr[100001];

int main() 
{
    cin >> N >> S;
    vector<int>v;
    for(int i=0; i<N; i++) 
    {
        cin >> arr[i];
        v.push_back(abs(arr[i]-S));
    }

    int tmp = abs(arr[0]-S);
    for(auto i : v)
    {
        tmp = gcd(tmp, i);
    }

    cout << tmp;
    
    return 0;
}

 

최대공약수를 활용한 문제이다.

입력받은 수빈이의 위치 S와 동생 간의 거리 차이 값을 모두 구하여 따로 저장하고,

이 값들의 최대공약수를 구하면 D의 최대값이 된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함