-
[알고리즘 문제 풀이][기하학] 백준 16483번 - 접시 안의 원자료구조&알고리즘/알고리즘 - 대회 알고리즘 2023. 2. 11. 19:16
백준 16483 접시 안의 원 문제를 푼 방법을 개인적으로 정리한 내용입니다.
- 문제 설명: https://www.acmicpc.net/problem/16483
- 문제 풀이:
문제에 따라 안쪽에 있는 원의 접선을 그리면 아래와 같습니다. 그리고 문제에서 접선과 바깥 원이 만나서 생기는 두 점 사이 거리를 T 로 준다고 하였으니 T 도 함께 표현하면 아래와 같습니다.
원의 테두리는 반지름들이 모여 이루어진 것이기 때문에 접선이 지나는 점 또한 중심으로부터 거리가 반지름과 같을 수밖에 없습니다. 따라서 바깥 원의 반지름인 a 와 안쪽 원의 반지름인 b 를 표현하면 아래와 같습니다.
원의 중심으로부터 접선까지 선을 그으면 직교하기 때문에 피타고라스 정리에 따라 a^2 - b^2 = (T/2) ^ 2 이 됩니다. 문제에서 T가 주어졌기 때문에 이 T 를 반으로 나누고 제곱을 시키면 답이 됩니다. (소수 첫째 자리에서 반올림하고 최종 출력은 정수형으로 출력해야한다는 점에 주의해야합니다.)
- 코드 (C):
#include <stdio.h> #include <math.h> double T; int main(void) { scanf("%lf", &T); printf("%.0lf\n", round((T/2.0) * (T/2.0))); return 0; }
- 실수 포인트 & 반례:
문제의 예제 외에 필요한 반례는 없었습니다.
'자료구조&알고리즘 > 알고리즘 - 대회 알고리즘' 카테고리의 다른 글
백준 2545 팬케익 먹기 증명 (라그랑주 승수법) (0) 2024.04.04 [알고리즘 문제 풀이][그리디] 백준 3211번 - kino (0) 2024.02.01 [알고리즘 문제 풀이][기하학] 백준 14264번 - 정육각형과 삼각형 (0) 2022.08.27 [알고리즘 문제 풀이][유니온파인드] 백준 20040번 - 사이클 게임 (0) 2022.07.08 [알고리즘 문제 풀이][재귀] 백준 11729번 - 하노이 탑 이동 순서 / 1914 번 - 하노이 탑 (0) 2022.03.01 댓글