본문 바로가기
백준 문제 풀이

[백준 1004] 어린 왕자

by $# 2020. 3. 19.

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


해설

 

이 문제는 1002번 터렛 문제와 마찬가지로 두 원의 위치 관계를 사용해야 한다.

1002번 풀이할 때 열심히 두 원의 위치 관계를 설명했기 때문에 이번 해설에서는 안하려고 한다. (사실 귀찮다.) ( 터렛 문제 해설 참고 : https://far-simple.tistory.com/3)

이 문제를 자기 스스로 풀어보고 싶다면 1002번 터렛 문제를 완전히 익히고 다시 풀어보기를 권장한다.

 

˙˙˙

소스코드

 

#include <iostream>
using namespace std;
int main(){
	int n, x1, x2, y1, y2;
	int nn, cnt, cx, cy, cr;
	int da, db, sqrcr;
	cin >> n;
	for(int i=0; i<n; i++){
		cnt=0;
		cin >> x1 >> y1 >> x2 >> y2 >> nn;
		for(int j=0; j<nn; j++){
			cin >> cx >> cy >> cr;
			da = (x1-cx) * (x1-cx) + (y1-cy) * (y1-cy);
			db = (x2-cx) * (x2-cx) + (y2-cy) * (y2-cy);
			sqrcr = cr * cr;
			if(da < sqrcr && db < sqrcr) continue;
			else if(da < sqrcr || db < sqrcr) cnt++;
		}
		cout << cnt << '\n';
	}
}

'백준 문제 풀이' 카테고리의 다른 글

[백준 11720] 숫자의 합  (0) 2020.03.19
[백준 1008] A/B  (0) 2020.03.19
[백준 1003] 피보나치 함수  (0) 2020.03.19
[백준 1002] 터렛  (0) 2020.03.19
[백준 1001] A-B  (0) 2020.03.19

댓글