본문 바로가기
Algorithm/구현

[Python3] 백준 1002번 터렛

by HANNI하니 2023. 4. 7.

사용 언어 - Python3

문제 - 터렛

 

1002번: 터렛

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

www.acmicpc.net

 

정답

if문 경우의 수 생각하기 (정답 맞춘 여부 X)

1. 두 원이 같고, 반지름이 같은 경우 => 무한한 경우 print(-1)

2. 두 원이 접해있는 경우 (내접 or 외접) => 무조건 점은 한개 print(1)

3. 두 원이 서로 다른 점 안에서 만날 때 => 점은 둘 중 하나 가능 print(2)

4. 나머지 경우 print(0)

import math
t = int(input())

for _ in range(t):
    x1, y1, r1, x2, y2, r2 = map(int,input().split())
    distance = math.sqrt((x1-x2)**2 + (y1-y2)**2)
    
    if distance == 0 and r1 == r2:
        print(-1)
    elif abs(r1-r2) == distance or r1 + r2 == distance:
        print(1)
    elif abs(r1-r2) < distance < (r1+r2):
        print(2)
    else:
        print(0)

 

 

 


레퍼런스

  • 정답 참고
 

백준 1002번 [파이썬] 터렛 : 두 원의 위치관계, 원의 방정식

[Python] 백준 알고리즘 온라인 저지 1002번 : 터렛 Python3 코드 import math n = int(input()) for _ in range(n): x1, y1, r1, x2, y2, r2 = map(int, input().split()) distance = math.sqrt((x1-x2)**2 + (y1-y2)**2) # 두 원의 거리 (원의방정

ooyoung.tistory.com

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글