[백준/Python] 1002번 터렛

2025. 2. 12. 14:25·알고리즘문제풀이

문제

https://www.acmicpc.net/problem/1002


문제이해

이 문제를 처음 읽고서는 이해가 잘 되지 않았다.

이해가 되지 않아 직접 그림을 그려보니 이 문제는 두 원의 교차점의 개수를 구하는 문제였다.

 

수학 안푼지 오래됐는데...

수학 개념을 검색해 보고 풀어봤다.

※ 두 원의 교차점의 개수

  1. 두 원이 아예 같은 경우 (무한대 개)
    • x,y 좌표와 반지름의 길이가 같다.
  2. 외부에서 만나지 않는 경우 (0개)
    • d > r1​+r2​ : 두 원의 반지름을 더해도 중심 거리보다 작음
  3. 내부에서 만나지 않는경우 (0개)
    • d < ∣ r1​−r2 ​∣ : 하나의 원이 다른 원 안에 있지만, 닿지 않음
  4. 외접하는 경우 (1개)
    • d = r1​+r2​ : 반지름을 더한 값이 중심 거리와 같음
  5. 내접하는 경우 (1개)
    • d=∣ r1​−r2 ​| : 하나의 원이 다른 원 안에 있지만 접함
  6. 두 점에서 만나는 경우 (2개)
    • 나머지 경우

2. 외부에서 만나지 않는 경우 / 3. 내부에서 만나지 않는경우


정답

import math

T = int(input())
for _ in range(T):
    x1, y1, r1, x2, y2, r2 = map(int, input().split())

    d = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)

    if (x1, y1) == (x2, y2) and r1 == r2:
        print(-1)
    elif d > (r1 + r2) or d < abs(r1 - r2):
        print(0)
    elif d == r1 + r2 or d == abs(r1 - r2):
        print(1)
    else:
        print(2)

 

위의 두 원의 교차점 구하는 조건을 따라 식을 완성했다. 

 

어렸을 때부터 도형에 약했는데.. 도형문제라니!!

 

 

 

P.S. 문제에 조규현은 내가 아는 조규현인가..?ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

저작자표시 비영리 변경금지 (새창열림)

'알고리즘문제풀이' 카테고리의 다른 글

[백준/Python] 2579번 계단 오르기  (0) 2025.02.14
[프로그래머스/Python] 실패율  (0) 2025.02.13
[백준/Python] 2805번 나무 자르기  (0) 2025.02.11
[백준/Python] 18110번 solved.ac  (0) 2025.02.10
[백준/Python] 10610번 30  (0) 2025.02.07
'알고리즘문제풀이' 카테고리의 다른 글
  • [백준/Python] 2579번 계단 오르기
  • [프로그래머스/Python] 실패율
  • [백준/Python] 2805번 나무 자르기
  • [백준/Python] 18110번 solved.ac
jungyn
jungyn
jungyn 님의 블로그 입니다.
  • jungyn
    jungyn 님의 블로그
    jungyn
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • 알고리즘문제풀이 (31)
      • 제로인턴 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    교점개수
    11729
    18110
    프로그래머스
    2606
    후기
    28278
    SYS
    스택 2
    통계헉
    1847
    시간초과
    1629
    스택
    다이나믹프로그래밍
    2161
    수들의 합 2
    제로인턴
    solved.ac
    너비우선탐색
    2차원행렬
    카드1
    BFS
    2108
    백준
    사전직무교육
    DP
    counter
    2563
    스택 수열
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
jungyn
[백준/Python] 1002번 터렛
상단으로

티스토리툴바