새로운 블로그로 이전 작업을 진행하고 있어 포스트가 새로 작성되고 있지 않습니다.

빠른 시일 내에 새로운 블로그로 인사드리겠습니다.

새로운 블로그 : https://unho.vercel.app/

본문 바로가기
알고리즘 문제풀이/Python

[백준] 1002 터렛

by 언호 2022. 3. 4.

📖 문제


🧑🏻‍💻 풀이 과정

1) 문제 이해 및 접근

두 개의 점을 기준으로 하여 반지름이 주어졌을때, 두 개의 원이 그어지면 그 원이 접하는 점의 개수를 구해야 했습니다.

2) 알고리즘

  • 수학

3) 풀이 코드

사용 언어 - Python

import sys
sys.stdin = open('input.txt')

T = int(sys.stdin.readline())                                           # 테스트 케이스 개수

for _ in range(T):
    x1, y1, r1, x2, y2, r2 = map(int, sys.stdin.readline().split())     # 좌표와 반지름
    distance = ((x1-x2)**2 + (y1-y2)**2)**0.5                           # 두 점간의 거리
    
    if x1 == x2 and y1 == y2 and r1 == r2:                  # 두 점이 같은 곳에 있고, 반지름도 같을때
        print(-1)
    elif distance == r1 + r2 or distance == abs(r1-r2):     # 두 원이 외접 또는 내접일때
        print(1)
    elif abs(r1-r2) < distance < r1 + r2:                   # 두 원이 바깥에서, 안에서 영역이 서로 겹칠때
        print(2)
    else:                                                   # 두 원이 서로 만나지 않을때
        print(0)

📝 결과 및 학습한 내용

1) 어려웠던 내용

특별히 없습니다.

2) 새롭게 학습한 내용

특별히 없습니다.


🔗 문제 링크

- https://www.acmicpc.net/problem/1002

 

1002번: 터렛

각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다.

www.acmicpc.net

 

 

※ 오류 및 오타, 다른 의견이 있는 경우 댓글을 남겨주시면 감사하겠습니다

댓글