[Bronze III] 앵그리 창영 - 3034
3034번: 앵그리 창영
첫째 줄에 던진 성냥의 개수 N과 박스의 가로 크기 W와 세로 크기 H가 주어진다. (1 ≤ N ≤ 50, 1 ≤ W, H ≤ 100) 다음 N개 줄에는 성냥의 길이가 주어진다. 길이는 1보다 크거나 같고 1000보다 작거나
www.acmicpc.net
성능 요약
메모리: 17732 KB, 시간: 216 ms
분류
기하학(geometry), 수학(math), 피타고라스 정리(pythagoras)
문제 설명
창영이는 화가나서 성냥을 바닥에 던졌다.
상근이는 바닥이 더러워진 것을 보고 창영이를 매우 혼냈다.
강산이는 근처에서 박스를 발견했다.
상덕이는 강산이가 발견한 박스를 상근이에게 주었다.
상근이는 박스에 던진 성냥을 모두 담아오라고 시켰다.
하지만, 박스에 들어가지 않는 성냥도 있다.
이런 성냥은 박스에 담지 않고 희원이에게 줄 것이다.
성냥이 박스에 들어가려면, 박스의 밑면에 성냥이 모두 닿아야 한다.
박스의 크기와 성냥의 길이가 주어졌을 때, 성냥이 박스에 들어갈 수 있는지 없는지를 구하는 프로그램을 작성하시오. 창영이는 성냥을 하나씩 검사한다.
입력
첫째 줄에 던진 성냥의 개수 N과 박스의 가로 크기 W와 세로 크기 H가 주어진다. (1 ≤ N ≤ 50, 1 ≤ W, H ≤ 100)
다음 N개 줄에는 성냥의 길이가 주어진다. 길이는 1보다 크거나 같고 1000보다 작거나 같은 자연수이다.
출력
입력으로 주어지는 각각의 성냥에 대해서, 박스안에 들어갈 수 있으면 "DA" 없으면 "NE"를 출력한다.
답 : 박스의 대각선 길이를 계산하여 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // 던진 성냥의 개수
int w = sc.nextInt(); // 박스의 가로 크기
int h = sc.nextInt(); // 박스의 세로 크기
for (int i = 0; i < n; i++) {
int length = sc.nextInt(); // 성냥의 길이
// 박스의 대각선 길이를 계산
double diagonal = Math.sqrt(Math.pow(w, 2) + Math.pow(h, 2));
// 성냥의 길이가 박스의 대각선 길이보다 작거나 같으면 박스에 들어갈 수 있음
if (length <= diagonal) {
System.out.println("DA");
} else {
System.out.println("NE");
}
}
sc.close();
}
}
'algorithm > 백준' 카테고리의 다른 글
[백준] 서버 - 10409 Java[자바] (0) | 2023.03.15 |
---|---|
백준 FBI - 2857 Java[자바] (0) | 2023.03.14 |
[백준] 연세대학교 - 15680 Java[자바] (0) | 2023.03.11 |
[백준] 폰 노이만과 파리 - 14924 Java[자바] (0) | 2023.03.10 |
[백준] 과목 선택 - 11948 Java[자바] (0) | 2023.03.10 |