※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 26073번 문제인 외로운 곰곰이는 친구가 있어요이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/26073 

 

26073번: 외로운 곰곰이는 친구가 있어요

첫 번째 줄에 친구의 수 $N\ (1 \le N \le 10\,000)$이 주어집니다. 이후 $N$개의 친구 정보가 각각 두 줄에 걸쳐 주어집니다. $i$번째 친구 정보의 첫 번째 줄에는 친구의 처음 위치 $X_i$, $Y_i\ (-100\,000 \le X

www.acmicpc.net

x방향의 움직임과 y방향의 움직임은 독립적임을 관찰하자.

 

주어지는 Ki값들을 이용해 한 방향으로 움직일 수 있는 최소 단위는 Ki들의 최대공약수와 같다. 따라서 x좌표와 y좌표가 Ki들의 최대공약수의 배수인지를 확인하는 것으로 문제를 해결할 수 있다.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int gcd(int x, int y) {
	if (y) return gcd(y, x % y);
	return x;
}

int N;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> N;
	while (N--) {
		int x, y; cin >> x >> y;
		int K; cin >> K;
		int GCD; cin >> GCD;
		for (int k = 1; k < K; k++) {
			int tmp; cin >> tmp;
			GCD = gcd(GCD, tmp);
		}

		if (x % GCD || y % GCD) cout << "Gave up\n";
		else cout << "Ta-da\n";
	}
}
728x90

+ Recent posts