공부하기/백준

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

XEV 2023. 7. 27. 23:30

자바 백준 16479번

브론즈 3

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

 

16479번: 컵라면 측정하기

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

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 기하학, 피타고라스 정리

 

 

 

 

 

문제 풀기

컵라면의 높이를 구하기 위해 피타고라스 정리를 이용한다.

윗면과 아랫면의 반지름을 구하고 두 개의 차를 통해 한 변을 정의한다. 이 변과 주어진 변 K로 피타고라스 정리를 적용하여 높이를 찾는다.

 

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int K = sc.nextInt();
        int D1 = sc.nextInt();
        int D2 = sc.nextInt();
        
        double heightSquared = calculateCupHeightSquared(K, D1, D2);
        
        System.out.println(heightSquared);
    }
    
    // 컵라면의 높이를 계산하는 함수
    private static double calculateCupHeightSquared(int K, int D1, int D2) {
        double r1 = D1 / 2.0;
        double r2 = D2 / 2.0;
        double height = Math.sqrt(K * K - Math.pow(r1 - r2, 2));
        
        return height * height;
    }
    
}