https://www.acmicpc.net/problem/3034
코드 (C)
#include <stdio.h>
#include <math.h>
int main()
{
int n, width, height, max, input;
scanf("%d %d %d", &n, &width, &height);
max = sqrt((width * width) + (height * height));
for (int i = 0; i < n; i++)
{
scanf("%d", &input);
if (input <= max) printf("DA\n");
else printf("NE\n");
}
return 0;
}
코드 (C++)
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n, width, height, input,max;
cin >> n >> width >> height;
max = sqrt((width * width) + (height*height));
for (int i = 0; i < n; i++)
{
cin >> input;
if (input <= max) cout << "DA\n";
else cout << "NE\n";
}
return 0;
}
코드설명
문제를 풀기 위해서는 박스의 대각선 길이를 구하고, 길이와 입력값을 비교하면 된다.
( 박스에 들어갈 수 있는 성냥의 최대 길이는 대각선 길이와 같다.)
따라서 성냥의 개수, 박스의 가로 길이, 박스의 세로길이를 입력받는다.
그 후 max 변수에 박스의 대각선 길이를 구해 대입한다.
성냥의 개수만큼 반복문을 돌면서 만약 성냥 길이가 max보다 클 경우에는 NE를 출력하고, 같거나 작은 경우에는 DA를 출력한다.
느낀 점
처음에 문제를 읽으면서 '뭘 구해야 되는 거지?'라고 생각했는데, 문제의 마지막 두 줄과 예시를 통해 구해야 할 것을 파악해서 문제를 풀었다.
'PS (C, C++)' 카테고리의 다른 글
[백준/C & C++] 2576 홀수 (0) | 2022.09.19 |
---|---|
[백준/C & C++] 1233 주사위 (0) | 2022.09.19 |
[백준/C & C++] 2577 숫자의 개수 (0) | 2022.09.15 |
[백준/C & C++] 25305 커트라인 (0) | 2022.09.15 |
[백준/C & C++] 15813 너의 이름은 몇 점이니? (0) | 2022.09.11 |