자료구조&알고리즘/알고리즘 - 대회 알고리즘

[알고리즘 문제 풀이][기하학] 백준 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;
}

 

- 실수 포인트 & 반례:

문제의 예제 외에 필요한 반례는 없었습니다.