Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

blog

(백준) 직사각형에서 탈출-1085 본문

백준

(백준) 직사각형에서 탈출-1085

채희태 2023. 4. 18. 11:19

문제

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

입력

첫째 줄에 x, y, w, h가 주어진다.

출력

첫째 줄에 문제의 정답을 출력한다.

 

 

  #include <stdio.h>
  
  int main(){
    int a, b, c, d;
    scanf("%d %d %d %d", &a, &b, &c, &d);
    
    if(c-a<d-b && c-a<a && c-a<b){
      printf("%d", c-a);
    }
    else if(c-a>d-b && d-b<a && d-b<b){
      printf("%d", d-b);
    }
      else if(d-b>a && c-a>a && a<d-b && a<b){
        printf("%d", a);
      }
        else if(d-b>b && c-a>b && c-a>b && a>b){
        printf("%d", b);
      }
    else if(c-a==d-b && c-a<a){
      printf("%d", c-a);
          }
    else if(c-a==d-b && c-a>a){
      printf("%d", a);
          }
    else
      printf("%d", a);
    return 0;
  }

일일 모든 경우의 수를 다 구해서 풀었다

c = 직사각형의 가로의 길이

d = 직삭각형의 세로의 길이

1. c - x 가 다른 경우의 수의 길이 보다 작으면 c-x를 출력한다.

2. d - b 가 다른 경우의 수의 길이 보다 작으면 d-b를 출력한다.

3. a의 길이가 다른 경우의 수의 길이보다 작으면 a를 출력한다.

4. b의 길이가 다른 경우의 수의 길이보다 작으면 b를 출력한다.

5. c-a의 길이가 다른 경우의 수의 길이보다 작으면 c-a를 출력한다.

6. c-a==d-b && c-a>a 면 a를 출력한다

7. 위의 경우의수를 다 충족하지 않으면  a를 출력한다.

 

'백준' 카테고리의 다른 글

(백준) 16952번 - A → B  (0) 2023.04.18
(백준) 27433번-팩토리얼 2  (0) 2023.04.18
(백준) 링-3036  (0) 2023.04.18
(백준) 2563: 색종이  (0) 2023.04.10
(백준) 2444-별찍기  (0) 2023.04.09