[구현] 백준 1002번 : 터렛

CHAEN·2022년 8월 2일
0

problem solving

목록 보기
26/33

문제

접근 방법

  • 두 원의 위치 관계에 대한 문제

나의 풀이 - Python

import math

t = int(input())

for _ in range(t):
    x1, y1, r1, x2, y2, r2 = map(int, input().split())
    
    if x1 == x2 and y1 == y2:   # 두 원의 중심이 일치하는 경우
        if r1 == r2:
            print(-1)
        else:
            print(0)
    else:                       # 두 원의 중심이 일치하지 않는 경우
        d = math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
        
        if max(d, r1, r2) == d:   # 하나의 원이 다른 원의 중심을 포함하지 않는 경우
            if d < r1 + r2:
                print(2)
            elif d > r1 + r2:
                print(0)
            else:
                print(1)
        else:
            if d > abs(r1 - r2):
                print(2)
            elif d < abs(r1 - r2):
                print(0)
            else:
                print(1)
            

나의 풀이 - C++

두 원의 위치 관계를 이용하는 문제라는 건 금방 떠올렸지만 그 경우를 모두 코드로 옮기는게 어려웠던 문제.
따져야 할 조건이 많아 하나씩 빼먹는 경우가 생긴다ㅜㅜ


다른 사람의 풀이 - Python

다른 사람의 풀이 - C++

profile
공부중입니다

0개의 댓글

관련 채용 정보