1085: 직사각형에서 탈출

2022. 7. 21. 01:48C언어/백준

브론즈 3

https://www.acmicpc.net/problem/1085

 

1085번: 직사각형에서 탈출

한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램

www.acmicpc.net

 

-결과

 

-코드

#include <stdio.h>

int main(void)
{
    int x, y, w, h;
    
    scanf("%d %d %d %d", &x, &y, &w, &h);
    
    if(w - x > h - y)
    {
        if(h - y > x) printf("%d", (x > y) ? y : x);
        else if(h - y > y) printf("%d", (y > x) ? x : y);
        else printf("%d", h - y);
    }
    else
    {
        if(w - x > x) printf("%d", (x > y) ? y : x);
        else if(w - x > y) printf("%d", (y > x) ? x : y);
        else printf("%d", w - x);
    }
    return 0;
}

 

-풀이

먼저 현재 위치인 x,y와 오른쪽 윗 꼭짓점인 w,h를 입력받는다.

문제의 조건을 읽어보면 점 (x,y)가 직사각형 내부에 존재하는 것을 알 수 있고, 그렇기 때문에 w-x, h-y, x, y 중 어떤 게 가장 작은 것인지 구해야 한다. if문과 삼항 연산자를 이용해서 풀면 된다.

'C언어 > 백준' 카테고리의 다른 글

1145: 적어도 대부분의 배수  (0) 2022.07.25
1100: 하얀 칸  (0) 2022.07.21
2163: 초콜릿 자르기  (0) 2022.07.15
2775: 부녀회장이 될테야  (0) 2022.07.15
2442: 별 찍기 -5  (0) 2022.07.09