반응형
츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 22938번 백발백준하는 명사수 파이썬(Python)
1) 문제번호 : 22938번
2) 문제 출처
https://www.acmicpc.net/problem/22938
2. 문제
백발백준은 무슨 과녁이던 백발백중하여 올림픽 금메달보다 따기 어렵다는 대한민국 양궁 국가대표 타이틀을 가지고 있다. 이런 백발백준이 현재 연마하는 스킬이 있는데...
바로 두 과녁을 한번에 맞추는 스킬이다. 이를 연습하기 위해 두 과녁이 겹치는 부분이 있어 한번에 맞추기가 가능한지 알아보고 싶어졌다.
여러분은 백발백준이 연습하는 과정을 도와주기 위해 원 모양으로 생긴 두 과녁이 겹치는 부분이 존재하는지 확인하는 프로그램을 작성해보자.
3. 제약사항
4. 입력
첫번째 줄에는 첫번째 과녁의 중심 X1, Y1와 반지름 R1이 주어진다.
두번째 줄에는 두번째 과녁의 중심 X2, Y2와 반지름 R2가 주어진다.
X1, X2, Y1, Y2는 모두 정수이며, R1, R2는 모두 자연수이다.
-109 ≤ X1, X2, Y1, Y2 ≤ 109, 0 < R1, R2 ≤ 109
5. 출력
두 과녁이 겹치면 YES, 아니면 NO를 출력한다.
단, 두 과녁이 한 점에서 만나는 경우는 겹치지 않는 것으로 생각한다.
6. 풀이
- 고등학교 기하학 문제다.
- 두 원의 위치에 따라서 식이 달라지기는 한데, 겹치면 YES 그 외는 NO라고 했으므로, 접점일 경우는 무조건 NO로 한다.
- 그래서 아래의 식을 사용하여 구하면 된다.
7. 소스 코드
import sys
import math
input=sys.stdin.readline
X1, Y1, R1 = map(int, input().split())
X2, Y2, R2 = map(int, input().split())
D = math.sqrt((X1 - X2)**2 + (Y1 - Y2)**2)
if math.sqrt((R1 + R2)**2) > D : print("YES")
else : print("NO")
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 23303번 이 문제는 D2 입니다. 파이썬(Python) (0) | 2022.01.27 |
---|---|
[백준 알고리즘] 백준 22864번 피로도 파이썬(Python) (0) | 2022.01.16 |
[백준 알고리즘] 백준 5717번 상근이의 친구들 파이썬(Python) (0) | 2022.01.16 |
[백준 알고리즘] 백준 3028번 창영마을 파이썬(Python) (0) | 2022.01.16 |
[백준 알고리즘] 백준 23804번 골뱅이 찍기 - ㄷ 파이썬(Python) (0) | 2022.01.11 |
[백준 알고리즘] 백준 23803번 골뱅이 찍기 - ㄴ 파이썬(Python) (0) | 2022.01.10 |
[백준 알고리즘] 백준 23802번 골뱅이 찍기 - 뒤집힌 ㄱ 파이썬(Python) (0) | 2022.01.10 |
[백준 알고리즘] 백준 23037번 5의 수난 파이썬(Python) (0) | 2022.01.09 |
최근댓글