1. 문제
https://www.acmicpc.net/problem/1002
1002번: 터렛
각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다.
www.acmicpc.net
2. 풀이
import math
import sys
input = sys.stdin.readline
# n : 테스트 개수
n = int(input())
for i in range(n):
x1, y1, r1, x2, y2, r2 = map(int, input().split())
if x1 == x2 and y1 == y2:
if r1 == r2:
print(-1)
elif r1 != r2:
print(0)
else:
dist = math.sqrt(((x2-x1) ** 2) + ((y2-y1) ** 2))
if dist > (r1 + r2) or dist + r1 < r2 or dist + r2 < r1:
print(0)
elif dist == (r1 + r2) or dist == abs(r1 - r2):
print(1)
elif dist < (r1 + r2):
print(2)
3. 후기
- 첫 실버3단계 문제이다.
단계가 올라가서 그런지 첫 문제부터 난이도가 올라간것을 느낄 수 있었다.
문제는 입력에서 주어진 두 좌표간의 거리와 r1, r2 값을 비교하여 출력을 달리하는 것으로 해결할 수 있었다.
두 좌표 간 거리는 x 좌표 차이 제곱 + 좌표 차이 제곱의 제곱근을 사용하여 구하였다.
'알고리즘 공부 > 백준' 카테고리의 다른 글
(Python)백준 코딩테스트 연습 - 어린 왕자(1004) (0) | 2023.01.24 |
---|---|
(Python)백준 코딩테스트 연습 - 피보나치 함수(1003) (0) | 2023.01.23 |
(Python)백준 코딩테스트 연습 - 좋은 단어(3986) (0) | 2023.01.21 |
(Python)백준 코딩테스트 연습 - 베스트셀러(1302) (0) | 2023.01.21 |
(Python)백준 코딩테스트 연습 - 링(3036) (0) | 2023.01.19 |