반응형
https://www.acmicpc.net/problem/22938
22938번: 백발백준하는 명사수
백발백준은 무슨 과녁이던 백발백중하여 올림픽 금메달보다 따기 어렵다는 대한민국 양궁 국가대표 타이틀을 가지고 있다. 이런 백발백준이 현재 연마하는 스킬이 있는데... 바로 두 과녁을
www.acmicpc.net
원의 성질을 이용하는 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
info, info2 선언 후 한 원의 중심 (x, y) 좌표와, 원의 반지름 r을 list형태로 입력받습니다.두 반지름의 합은 total_radian에, 원 좌표 사이의 거리를 구해 dist에 저장합니다.
📔 풀이과정
10^9까지의 범위이므로 좌표 사이의 거리로 제곱값을 구해야하는 상황에서 overflow가 납니다. 사직연산에 대한 bigint를 지원하는 언어가 문제를 풀기 유리합니다.
원이 접하고 있는 그림입니다. 이 경우 a + b가 원의 좌표 사이의 거리와 같게 됩니다. 이 원이 서로 멀어진다면 total_radian보다 dist가 커지게 됩니다. 이 두 경우에 겹치는 원의 영역은 없습니다.
📔 정답출력
조건에 따라 정답을 출력합니다.
📕 Code
from math import sqrt
import sys
input = sys.stdin.readline
info = list(map(int, input().split()))
info2 = list(map(int, input().split()))
dist = sqrt((info[0] - info2[0]) ** 2.0 + (info[1] - info2[1]) ** 2.0)
total_radian = info[2] + info2[2]
if dist >= total_radian: print("NO")
else: print("YES")
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Math' 카테고리의 다른 글
(C++) - LeetCode (easy) 367. Valid Perfect Square (0) | 2023.02.23 |
---|---|
(C++) - LeetCode (easy) 231. Power of Two (2) | 2023.01.17 |
(Rust) - 백준(BOJ) 15734 : 명장 남정훈 (0) | 2022.08.15 |
(C++) - 백준(BOJ) 8794 : Poniedziałki (0) | 2022.07.19 |
(C++) - 백준(BOJ) 9469 : 폰 노이만 (0) | 2022.06.19 |