문제
https://www.acmicpc.net/problem/1002
걸린 시간
01 : 10 : 22
풀이
Python3
if __name__ == "__main__":
# 테스트 케이스 수 : T
T = int(input())
# 결과값을 저장할 리스트
result = []
for i in range(0, T):
# 조규현(x1, y1), 백승환(x2, y2)
# 각자의 위치에서 류재명과의 거리 r1, r2
x1, y1, r1, x2, y2, r2 = map(int, input().split())
# 둘 사이의 간격을 구한다.
distance = ((x2 - x1)**2 + (y2 - y1)**2)**0.5
# 만약 r1, r2 를 합친 값보다 둘 사이의 거리가
# 길면
if distance > r1 + r2:
result.append(0)
# 같으면
elif distance == r1 + r2:
result.append(1)
# 짧으면
else:
# 한 반경 속에 다른 반경이 들어 있으면
if distance < abs(r1 - r2):
# 두 좌표가 같으면
if distance == 0:
# 반지름까지 같으면
if r1 == r2:
result.append(-1)
else:
result.append(0)
else:
result.append(0)
# 한 반경 속에 다른 반경이 접하면
elif distance == abs(r1 - r2):
# 두 좌표가 같으면
if distance == 0:
result.append(-1)
else:
result.append(1)
# 두 반경이 두점에서 만나면
else:
result.append(2)
# 류재명이 있을 수 있는 위치의 수 출력
for i in result:
print(i)
귀찮다고 일부만 그림을 그린뒤 머리로만 생각하며 구현하다 한 경우의 수를 놓쳤고 결국 모든 케이스를 다시 그려 해결해야했다.
'Baekjoon' 카테고리의 다른 글
Baekjoon 1966번 프린터 큐 (0) | 2020.07.20 |
---|---|
Baekjoon 1874번 스택 수열 (0) | 2020.07.20 |
Baekjoon 10848번 큐 (0) | 2020.07.19 |
Baekjoon 10828번 스택 (0) | 2020.07.18 |
Baekjoon 18111번 마인크래프트 (0) | 2020.07.18 |
댓글