티스토리 뷰
728x90
문제
한수는 지금 (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 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 포트포워딩
- vmware key
- 라우터
- 버퍼오버플로우
- vmware player
- 설치법
- dr/bdr
- jump king
- vmware pro
- 라우팅
- 무료설치
- 설정법
- 메트릭
- 점프킹설치
- 코드업
- ospf
- 네트워크
- 패킷트레이서
- 디폴트라우팅
- Brave
- ospf config
- 동적라우팅
- 게이트웨이
- 스택 버퍼 오버플로우
- 정적라우팅
- 과제
- 오버플로우
- github
- 점프킹
- 힙오버플로우
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
250x250