백준 1002 터렛 파이썬
https://www.acmicpc.net/problem/1002
접근
중학교3학년인가 풀었던 수학문제랑 같았다.
1. 두 원이 겹쳐 있을 때,
2. 두 원이 떨어져 있을 떄,
3. 위의 두 케이스에서 접 점일 때,
4. 중심점이 같고 반지름 길이가 다를 때
를 고려하면 풀린다.
import sys
import math
input=sys.stdin.readline
for _ in range(int(input())):
a=list(map(int,input().split())) # 0 1 2 // 3 4 5
b=math.sqrt((a[3]-a[0])*(a[3]-a[0])+(a[4]-a[1])*(a[4]-a[1]))
if b==0 and a[2]==a[5]:
print(-1)
continue
elif b==0 and a[2]!=a[5]:
print(0)
continue
if b+min(a[2],a[5])==max(a[2],a[5]):
print(1)
continue
elif b+min(a[2],a[5])<max(a[2],a[5]):
print(0)
continue
if a[2]+a[5]>b:
print(2)
elif a[2]+a[5]<b:
print(0)
elif a[2]+a[5]==b:
print(1)
>> 백준의 '기하' 파트 중 한 문제이다.
간만에 좌표를 그리고 수학문제 풀 듯 푸니까 재밌고 좋았다.
단순 구현력을 연습하는 문제로 딱이다.
'알고리즘 > 알고리즘문제' 카테고리의 다른 글
[알고리즘] 백준 14889 스타트와 링크 파이썬 (0) | 2022.07.28 |
---|---|
[알고리즘] 백준 14888 연산자 끼워넣기 파이썬 (0) | 2022.07.26 |
[알고리즘] 백준 2675 문자열 반복 (0) | 2022.07.14 |
[알고리즘] 백준 1753 최단경로 (0) | 2022.07.08 |
동적계획법 - 백준 9184 (0) | 2022.07.05 |