백준 1002번: 터렛 파이썬 풀이


백준 1002번: 터렛 파이썬 풀이

# 백준 1002번 터렛 # 난이도 실버 4 # 알고리즘 수학, 기하학 # 소스 코드 및 해석 import sys input = sys.stdin.readline T = int(input()) for _ in range(T): x1,y1,r1,x2,y2,r2 = map(int, input().split()) d = ((x1-x2)**2 + (y1-y2)**2)**0.5 if d==0 and r1==r2: print(-1) elif d in [abs(r1-r2), r1+r2]: print(1) elif abs(r1-r2) < d < r1+r2: print(2) else: print(0) 1. 문제 풀이법 각 터렛의 위치를 (x1,y1), (x2,y2)라 두었고 반지름 r1, r2가 주어졌으므로, 두 원의 교점의 개수를 파악하는 문제로 생각할 수 있다. 2. d의 의미 d는 (x1,y1) 과 (x2,y2) 사이의 거리를 나타낸다. 3. 처음 if d==0일 경우 두 점의 좌표가 같고, ...


#1002번 #백준 #백준1002번 #백준1002번파이썬 #백준터렛 #터렛 #파이썬

원문링크 : 백준 1002번: 터렛 파이썬 풀이