
문제

내 풀이 : 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점이 만점이거늘 왜 이렇게 통념을 타파하려 애쓰지?
왜 나를 이렇게 분노하게하지?
아무튼 피타고라스의 정리로 풀었다. 더 쉽게 코드를 풀었다.