반갑습니다!

[백준] 16479 컵라면 측정하기 본문

알고리즘 문제 풀이

[백준] 16479 컵라면 측정하기

김덜덜이 2020. 9. 18. 14:08

풀이

2가지 경우를 구분해줘야한다.

  1. D1과 D2가 같은 경우
  2. D1과 D2가 다른 경우

D1과 D2가 같은 경우에는 K가 높이가 되므로 정답은 K^2가 된다.
D1과 D2가 다른 경우에는 아래 그림과 같이 삼각형을 만들어서 피타고라스의 정리를 사용해주면 높이^2를 쉽게 구할 수 있다.

코드

#include <iostream>
using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int k, d1, d2;
    cin >> k;
    cin >> d1 >> d2;
    if (d1 == d2) cout << k * k << '\n';
    else {
        float tmp = (float)(d1 - d2) / 2;
        cout<< fixed;
        cout.precision(6);
        cout << k * k - tmp * tmp << '\n';
    }
}