#17. [백준_C언어] 1085 : 직사각형에서 탈출

 

 입력 코드 

#include <stdio.h>

main() {
	int x, y, w, h;
	int d[4];

	scanf("%d %d %d %d", &x, &y, &w, &h);

	d[0] = x;
	d[1] = y;
	d[2] = w - x;
	d[3] = h - y;
 
	int i, min;
	for (i = 0; i < 3; i++) {
		if (d[i] <= d[i + 1]) {
			min = d[i];
			d[i + 1] = min;
		}

		else
			min = d[i+1];
	}
	printf("%d\n", min);
}

 

 코드 설명 

입력, 반복문과 조건문을 이용하는 문제

#include <stdio.h>

main() {
	int x, y, w, h;
	scanf("%d %d %d %d", &x, &y, &w, &h);

	int d[4] = { x, y, w - x, h - y };

	int i, min;
	for (i = 0; i < 4; i++) {
		if (d[i] > d[i + 1])
			min = d[i + 1];
	}
	printf("%d\n", min);
}

처음에는 이렇게 각 경계선까지의 거리를 배열에 넣고 비교하는 걸로 작성을 했는데 출력이 제대로 되지 않았다. 

#include <stdio.h>

main() {
	int x, y, w, h;
	int d[4];

	scanf("%d %d %d %d", &x, &y, &w, &h);

	d[0] = x;
	d[1] = y;
	d[2] = w - x;
	d[3] = h - y;
 
	int i, min;
	for (i = 0; i < 3; i++) {
		if (d[i] <= d[i + 1]) {
			min = d[i];
			d[i + 1] = min;
		}

		else
			min = d[i+1];
	}
	printf("%d\n", min);
}

반복문에서 i=3까지 해서 밑에 조건문에서 d[4]랑 비교하면서 에러가 난 것 같다.

 

 

참고한 사이트

editor752.tistory.com/137

 

백준(BAEKJOON): 직사각형에서 탈출(1085번)

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

editor752.tistory.com

jwprogramming.tistory.com/40

 

백준 알고리즘 - 1085번 : 직사각형에서 탈출

백준 알고리즘 - 1085번 직사각형에서 탈출 문제입니다. (참고 - https://www.acmicpc.net/problem/1085 ) 코드 ) #include int main() { int x, y, w, h, i, min; int arr[4]; scanf("%d %d %d %d", &x, &y, &w..

jwprogramming.tistory.com

 

 문제 출처 

www.acmicpc.net/problem/1085

 

1085번: 직사각형에서 탈출

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

www.acmicpc.net