반응형
파이썬으로 백준풀기 : 1002번 터렛
https://www.acmicpc.net/problem/1002
코드
1 2 3 4 5 6 7 8 | n = int(input()) for i in range(n) : x1, y1, r1, x2, y2, r2 = map(int, input().split()) r = ((x1-x2)**2 + (y1-y2)**2)**(1/2) R = [r1,r2,r] m=max(R); R.remove(m) print(-1 if (r==0 and r1==r2) else 1 if (r == r1+r2 or m==sum(R)) else 0 if (m > sum(R)) else 2) | cs |
코드설명
총 네 가지 경우의 수가 있다. (두 원의 중점 사이의 거리를 r이라 하자.)
-1 : 두 원이 일치하는 경우
r==0 & r1==r2
1 : 두 원이 한 점에서 만나는 경우 (외접, 내접)
(r == r1 + r2) or (r2 == r + r1)
0 : 두 원이 만나지 않는 경우
r, r1, r2 중 가장 긴 값이 나머지 두 값의 합 보다 큰 경우
2 : 두 원이 두 점에서 만나는 경우
위 세 가지 경우가 아닌 경우
반응형
'코딩테스트 연습 > 백준' 카테고리의 다른 글
[백준] 2231번 : 분해합 in python 파이썬 (0) | 2019.10.12 |
---|---|
[백준] 2798번 : 블랙잭 in python 파이썬 코드 & 설명 (0) | 2019.10.11 |
[백준] 9020번 : 골드바흐의 추측 in 파이썬 쉽게 풀어보기 (0) | 2019.10.01 |
[백준] 3053번 : 택시 기하학 in 파이썬 쉽게 풀어보기 (0) | 2019.09.30 |
[백준] 4153번 : 직각삼각형 in 파이썬 쉽게 풀어보기 (0) | 2019.09.29 |