1085번: 직사각형에서 탈출 (acmicpc.net)
<참고용>
#include <stdio.h>
int main() {
int x = 0, y = 0, w = 0, h = 0;
scanf("%d %d %d %d", &x, &y, &w, &h);
if (w - x > h - y&&h-y<y&&h-y<x) {
printf("%d", h-y);
}
else if (h - y > w - x&&w-x<y&&w-x<x) {
printf("%d", w-x);
}
else if (h - y > y && w-x>y&&x>y) {
printf("%d", y );
}
else if (h - y > x && w - x > x && y > x) {
printf("%d", x);
}
else if (w - x == h - y) {
printf("1");
}
return 0;
} //틀린 코드
위 else if 마지막에 1로 정의를 내렸는데 1로 정의를 내리는 것이 아닌 새로운 조건을 찾아서 넣어줘야합니다.
#include <stdio.h>
int main() {
int x = 0, y = 0, w = 0, h = 0;
scanf("%d %d %d %d", &x, &y, &w, &h);
if (w - x > h - y&&h-y<y&&h-y<x) {
printf("%d", h-y);
}
else if (h - y > w - x&&w-x<y&&w-x<x) {
printf("%d", w-x);
}
else if (h - y > y && w-x>y&&x>y) {
printf("%d", y );
}
else if (h - y > x && w - x > x && y > x) {
printf("%d", x);
}
else if (h - y == w - x && x > y)
{
printf("%d", y);
}
else if (h - y == w - x && y > x)
{
printf("%d", x);
}
else if (h - y == w - x && y == x) {
printf("%d", x);
}
return 0;
}
조건을 3개 추가한 것을 볼 수 있습니다.
<코드해석>
조건 1) h-y를 출력
w-x보다 작고, y,x보다 작으면 h-y를 출력해준다.
조건 2) w-x를 출력
h-y보다 작고, y,x보다 작으면 w-x를 출력해준다.
조건 3) y를 출력
h-y,w-x,x보다 y가 작으면 y를 출력해준다.
조건 4) x를 출력
h-y,w-x,x보다 y가 작으면 y를 출력해준다.
****중요 조건(못 찾아서 틀렸었습니다.)
조건 5,6)h-y와 w-x가 같을 경우에 x가 작다면 x를 y가 작다면 y를 출력해준다.
조건 7)h-y와 w-x가 같을 경우에 x와 y가 같다면 x나 y를 출력해준다.
해당 조건들을 잘 파악해주시면 쉽게 푸실 수 있으실 것입니다 ✨
[백준]BOJ _브론즈 5_ 10951번 A+B -4 _C언어(EOF/출력초과) (6) | 2022.09.13 |
---|---|
[백준]BOJ_브4_3046번 R2_C언어 (2) | 2022.09.11 |
[백준]BOJ_브3_2490 윷놀이_C언어 (4) | 2022.09.08 |
[백준]BOJ_브3_2455번 지능형기차_C언어 (0) | 2022.09.08 |
[백준] BOJ_2742번_기찍 N_C/C++ (2) | 2022.09.05 |
댓글 영역