코딩 정복 가즈아~
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
블로그 내 검색

코딩 정복 가즈아~

(っ◔◡◔)っ ♥ 2021 취뽀하자!! ♥

  • 알고리즘 풀이/백준

    [1002] 백준 : 터렛(C++)

    2020. 4. 26.

    by. 데롱디롱

    728x90

     

    * 접근한 방식
    - 두 원의 교점 수를 구하는 방법을 적용(우측 사진)
    - 류재명 위치가 무한대 = 같은 원을 의미
       └ d == 0 이고, r1 == r2
    - 교점 1개(내접 또는 외접)
       └ d == r1 - r2(r1 > r2) 또는 d == r1 + r2
    - 교점 2개
       └ r1 - r2 < d < r1 + r2(r1>r2)
    - 위 3개에 해당하지 않는 경우, 교점 0개

     

     

    #include <iostream>
    #include <math.h>
    using namespace std;
    
    int main()
    {
    	int x1, y1, r1, x2, y2, r2;
    	double d;
    	int T = 0;
    	cin >> T;
    
    	for (int i = 0; i < T; i++)
    	{
    		cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
    		d = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
    
    		if (d == 0 && r1 == r2)		// 같은 원
    			cout << -1 << "\n";
    		else if (d == abs(r1 - r2) || d == r1 + r2)		// 내접, 외접
    			cout << 1 << "\n";
    
    		else if (abs(r1 - r2) < d && d < r1 + r2)	// 교점 2개인 원
    			cout << 2 << "\n";
    		else
    			cout << 0 << "\n";
    	}	
    }
    저작자표시 (새창열림)

    '알고리즘 풀이 > 백준' 카테고리의 다른 글

    [11729] 하노이 탑 이동 순서(C++)  (0) 2020.04.27
    [2447] 백준 : 별 찍기 - 10(C++)  (0) 2020.04.26
    [3053] 택시 기하학(C++)  (0) 2020.04.26
    [4153] 백준 : 직각삼각형(C++)  (0) 2020.04.26
    [3009] 백준 : 네 번째 점(C++)  (0) 2020.04.26

    댓글

    관련글

    • [11729] 하노이 탑 이동 순서(C++) 2020.04.27
    • [2447] 백준 : 별 찍기 - 10(C++) 2020.04.26
    • [3053] 택시 기하학(C++) 2020.04.26
    • [4153] 백준 : 직각삼각형(C++) 2020.04.26
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

피할 수 없다면, 순간을 즐겨라

Designed by Nana
블로그 이미지
데롱디롱
희희.. (๑′ᴗ‵๑)

티스토리툴바