#41. [백준_C언어] 3009 : 네 번째 점

 

 입력 코드 

#include <stdio.h>

main() {
	int x[4], y[4];
	int i;

	for (i = 0; i < 3; i++) {
		scanf("%d %d", &x[i], &y[i]);
	}

	if (x[0] == x[1])
		x[3] = x[2];
	else if (x[0] == x[2])
		x[3] = x[1];
	else
		x[3] = x[0];

	if (y[0] == y[1])
		y[3] = y[2];
	else if (y[0] == y[2])
		y[3] = y[1];
	else
		y[3] = y[0];

	printf("%d %d\n", x[3], y[3]);
}

 

 코드 설명 

#구현 #기하학 #조건문

#include <stdio.h>

main() {
	int x[4], y[4];
	int i;

	for (i = 0; i < 3; i++) {
		scanf("%d %d", &x[i], &y[i]);
	}

	for (i = 0; i < 3; i++) {
		if (x[i] == x[i + 1]) {
			x[3] = x[i + 2];
			break;
		}
		else if (x[i] == x[i + 2]) {
			x[3] = x[i + 1];
			break;
		}
		else if (x[i + 1] = x[i + 2]) {
			x[3] = x[i];
			break;
		}
	}

	for (i = 0; i < 3; i++) {
		if (y[i] == y[i + 1]) {
			y[3] = y[i + 2];
			break;
		}
		else if (y[i] == y[i + 2]) {
			y[3] = y[i + 1];
			break;
		}
		else if (y[i + 1] = y[i + 2]) {
			y[3] = y[i];
			break;
		}
	}

	printf("%d %d\n", x[3], y[3]);
}

처음에는 그냥 다 일일이 비교했다. x좌표와 y좌표를 각각 배열에 집어넣고, x[0]=x[1]이거나 x[0]=x[2]이거나 x[1]=x[2]인 경우로 나누어서 x[3]값을 지정했다. 어차피 이럴 거면 반복문을 사용하지 않아도 되었겠지만..

 

그래서 다른 풀이를 찾아봤는데 if, else if, else로 더 깔끔하게 작성할 수도 있을 것 같다.

 

 

참고한 사이트

mjeong9316.tistory.com/154

 

[C 언어] 백준 3009. 네 번째 점

3009. 네 번째 점 (누르면 해당 문제로 이동) 직사각형을 완성하는 문제 제약사항) 시간 : 1 초 메모리 : 128 MB 문제) 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점

mjeong9316.tistory.com

 

 

 

 문제 출처 

www.acmicpc.net/problem/3009

 

3009번: 네 번째 점

세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.

www.acmicpc.net