
문제

내 풀이
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();
StringTokenizer st = new StringTokenizer(br.readLine());
int matches = Integer.parseInt(st.nextToken());
int boxGaro = Integer.parseInt(st.nextToken());
int boxSero = Integer.parseInt(st.nextToken());
String answer = "";
for (int i = 0; i < matches; i++) {
int howLong = Integer.parseInt(br.readLine());
if (howLong <= boxGaro){
sb.append("DA").append("\n");
}else if(howLong <= boxSero){
sb.append("DA").append("\n");
}else if(howLong <= Math.sqrt(Math.pow(boxGaro, 2) + Math.pow(boxSero, 2))){
sb.append("DA").append("\n");
}else{
sb.append("NE").append("\n");
}
}
System.out.println(sb.toString());
}
}
느낀점
단순히 가로,세로와 비교하는 것 뿐만이 아니라 성냥을 박스 대각선으로도 넣을 수 있다.
그렇기 위해서는 대각선에 넣을 수 있느냐 없느냐를 비교하는 것이 이 문제에서 물어보는 것 같다. 가로,세로 = 입력 값 , 대각선의 길이 = (가로제곱 + 세로 제곱)의 루트를 사용해서
비교하자!