언유상씨의 건전한 취미생활

[백준 알고리즘] 앵그리 창영(3034번) C로풀기 본문

건전한 취미생활 - 알고리즘

[백준 알고리즘] 앵그리 창영(3034번) C로풀기

언유상 2020. 1. 31. 15:10

문제 이름 : 앵그리 창영

문제 번호 : 3034

사용 언어 : C

문제 유형 : 구현

 

문제는 다음과 같다.

참고로 창영이와 상근이는 의미가 없다.

문제를 풀어보도록 하자.

 

이번 문제 풀이에서 중요한 아이디어는, 상자 바닥에 대각선으로 들어가도 인정해 준다는 것이다.

계산을 쉽게하기 위해 math.h의 sqrt() 함수를 사용하도록 하자.(제곱근값을 반환하는 함수이다.)

 

따라서 다음과 같은 코드가 나온다.

#define _CRT_SECURE_NO_WARNINGS
#include  <stdio.h>
#include  <math.h>
int main() {

int n, w, h, s;
    scanf("%d", &n);
    scanf("%d", &w);
    scanf("%d", &h);
    for (int i = 0; i < n; i++){
        scanf("%d", &s);
        if (s <= w || s <= h)  #가로와 세로에 맞는지
            printf("DA\n");
        else if (s <= sqrt((w*w)+(h*h)))  #대각선이 맞는지
            printf("DA\n");
        else printf("NE\n");
    }
    return 0;
}

Comments