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

정은아·2024년 6월 23일

[알고리즘] 수학 모음

목록 보기
119/152
post-thumbnail

문제

내 풀이 : 40점

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int k = Integer.parseInt(br.readLine());

        StringTokenizer st = new StringTokenizer(br.readLine());

        int d1 = Integer.parseInt(st.nextToken());
        int d2 = Integer.parseInt(st.nextToken());

        double heightDifference = Math.abs(d1 - d2);
        double answer = (k * k)- (heightDifference * heightDifference) / 4.0;

        sb.append(answer);
        System.out.println(sb.toString());

    }
}

내 풀이 2 : 40점 (만점)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int k = Integer.parseInt(br.readLine());

        StringTokenizer st = new StringTokenizer(br.readLine());

        int d1 = Integer.parseInt(st.nextToken());
        int d2 = Integer.parseInt(st.nextToken());

        double d1MinD2Devide = (double) (d2 - d1) / 2;

        // k^2 == diMinD2Devide^2 + 답^2 이다.

        double answer = (k*k) - (d1MinD2Devide * d1MinD2Devide);
        
        System.out.println(sb.toString());
    }
}

느낀점

어떻게 푸는거지...? 추후에 수정해야겠다..

+) 40점이라 다시 풀고 다시 풀었는데 만점이 40점이었다 ^^
왜 자꾸 서브데스크는 만점을 100점으로 안주고 그지같이 630점을 주질않나 40점을 주질않나
한국인이라면 100점 아니면 990점이 만점이거늘 왜 이렇게 통념을 타파하려 애쓰지?
왜 나를 이렇게 분노하게하지?
아무튼 피타고라스의 정리로 풀었다. 더 쉽게 코드를 풀었다.

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글