본문 바로가기

Algorithm/Implementation

(Rust) - 백준(BOJ) 16483 : 접시 안의 원

반응형

https://www.acmicpc.net/problem/16483

 

16483번: 접시 안의 원

첫째 줄에 양의 정수 T의 값이 주어진다. 단, T의 값은 10,000 이하이다.

www.acmicpc.net

간단한 구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

한 줄line을 선언해 입력받고 t 변수를 선언해 이를 저장합니다.

📔 풀이과정

a, b, t를 그림으로 나타내면 다음과 같습니다.

접선과 원의 중심까지의 거리는 b이며 이 선과 접선은 수직이므로 피타고라스의 정리를 이용해 공식을 세울 수 있습니다.

$$ b^2 + (t/2)^2 = a^2 $$

구하려는 값은 $$ a^2 - b^2 $$ 이므로 적절히 이항하면

$$ (t/2)^2 = a^2 - b^2 $$ 가 됩니다.

📔 정답출력

이 공식을 소수점 첫째자리에서 반올림한 값을 출력합니다.


📕 Code

use std::io;
fn main() {
  let mut line = String::new();
  io::stdin().read_line(&mut line).expect("wrong io");
  let t = line.trim().parse::<f64>().unwrap();
  println!("{}", (t/2.0 * t/2.0).round());
}

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.