공부하기/백준

[Java] 백준 풀기 6502 - 동혁 피자

XEV 2023. 7. 29. 23:36

자바 백준 6502번

브론즈 2

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

 

6502번: 동혁 피자

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 숫자 세 개로 이루어져 있고, 순서대로 r, w, l이다. r은 식탁의 반지름이고, w와 l은 피자의 너비와 높이이다. (1 ≤ r ≤ 1000

www.acmicpc.net

 

 

 

 

 

문제 보기

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

 

 

 

 

 

문제 풀기

주어진 직사각형 피자의 수치인 너비와 높이를 통해 `대각선`의 길이를 구한 뒤, 원형 테이블의 `반지름 * 2` 보다 작거나 같은지 판단한다.

boolean으로 판단된 결과를 테스트 번호와 ternary operator를 이용하여 답안 형식에 맞게 출력한다.

 

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int testCase = 0;
        
        while (true) {
            testCase++;
            
            int r = sc.nextInt();
            if (r == 0) break;
            
            int w = sc.nextInt();
            int l = sc.nextInt();
            
            boolean isPizzaFit = isPizzaFitOnTable(r, w, l);
            
            System.out.println("Pizza " 
                            + testCase 
                            + (isPizzaFit ? " fits on the table." : " does not fit on the table."));
        }
    }
    
    // 피자가 올라가는지 확인하는 메서드
    private static boolean isPizzaFitOnTable(int r, int w, int l) {
        // 대각선의 길이를 계산합니다.
        double diagonal = Math.sqrt(w * w + l * l);
        
        // 원의 지름과 대각선의 길이를 비교하여 피자가 식탁 위에 놓여질 수 있는지 판단합니다.
        return diagonal <= 2 * r;
    }
    
}