Algorithm

[Java] 백준 1297번 TV 크기

로춘남 2021. 11. 3. 09:00
728x90


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

 

1297번: TV 크기

김탑은 TV를 사러 인터넷 쇼핑몰에 들어갔다. 쇼핑을 하던 중에, TV의 크기는 그 TV의 대각선의 길이로 나타낸 다는 것을 알았다. 하지만, 김탑은 대각선의 길이가 같다고 해도, 실제 TV의 크기는

www.acmicpc.net

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {

       BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
       String[] temp = br.readLine().split(" ");

       int diagonal = Integer.parseInt(temp[0]);
       int height = Integer.parseInt(temp[1]);
       int width = Integer.parseInt(temp[2]);

       //소수점이 나올 경우, 그 수보다 작은면서 가장 큰 정수 출력 (floor)
       double res = Math.sqrt(Math.pow(diagonal, 2) / (Math.pow(height, 2) + Math.pow(width, 2)));
        System.out.print((int)Math.floor(res*height) + " ");
        System.out.println((int)Math.floor(res*width));
    }
}

※ 피타고라스의 정리

: 직각삼각형에서 빗변 길이의 제곱은 빗변을 제외한 두 변의 각각 제곱의 합과 같다.

출처 : 홍재룡수학학원

 

※ Math 관련

제곱근(루트) 구하기

Math.sqrt() : 입력값과 출력값은 모두 double형. Math.sqrt(대상숫자)를 넣어주면 된다.

ex) Math.sqrt(9); // 9의 제곱근

 

Math.pow() : 입출력값 모두 double형. Math.pow(대상숫자, 지수) 넣어주면됨.

ex) Math.pow(3, 2); // 3의 제곱

 

Math.floor(); -> 내림(바닥으로 floor)

Math.ceil(); -> 올림(천장으로 ceiling)

Math.round(); -> 반올림(반올림 round)

3가지 모두 double형으로 반환

728x90