백준 1002번 터렛 C++

빵어 ㅣ 2024. 11. 23. 23:12

 

#include <iostream>
#include <math.h>
using namespace std;

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

	int t;
	cin >> t;

	while (t--) {
		float x1, y1, r1, x2, y2, r2;
		cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;

		if (x1 == x2 && y1 == y2 && r1 == r2) {
			cout << "-1\n";
			continue;
		}

		float tempX = x1 - x2;
		float tempY = y1 - y2;
		float distance = sqrt(tempX * tempX + tempY * tempY);
		
		if (distance == r1 + r2 || distance == abs(r2 - r1))
			cout << "1\n";
		else if (distance > r1 + r2 || distance < abs(r2 - r1))
			cout << "0\n";
		else
			cout << "2\n";
	}

	return 0;
}

 

 

두 개의 원을 그려보면서 두 원의 반지름과 두 원의 거리, 두 원의 관계(내접 등)를 생각해야했던 수학문제

int로 변수를 선언하면 틀린 값이 나오므로 float로 선언해야한다.

 

 

'알고리즘 공부' 카테고리의 다른 글

백준 2630번 색종이 만들기 C++  (0) 2024.11.25
백준 1238번 파티 C++  (0) 2024.11.24
백준 12904번 A와 B C++  (0) 2024.11.15
백준 7569번 토마토 C++  (1) 2024.11.13
백준 1904번 01타일 C++  (0) 2024.10.31