본문 바로가기

Algorithm/Math

(C++) - 백준(BOJ) 16479번 : 컵라면 측정하기

반응형

www.acmicpc.net/problem/16479

 

16479번: 컵라면 측정하기

첫째 줄에 K의 값이 주어진다. 둘째 줄에는 D1과 D2의 값이 사이에 공백을 한 개 두고 차례대로 주어진다. 단, K, D1, D2의 값은 양의 정수이다.

www.acmicpc.net

수학 문제였습니다.

 

풀이방법

상기와 같이 3가지 형태의 컵라면이 나올 수 있습니다. 하지만 이를 하나의 공식으로 한 번에 높이를 구할 수 있습니다.

n = (max(d1,d2) - min(d1,d2)) / 2

정답 : k * k - n * n

Code

 

#include <bits/stdc++.h>
using namespace std;
double k,d1,d2,n;
int main(){
    cin >> k >> d1 >> d2;
    n = (max(d1,d2)-min(d1,d2)) / 2.0;
    cout << k * k - n * n;
}