본문 바로가기
문제 풀이/백준(BOJ)

[C] 백준 3009번 : 네 번째 점

by 희조당 2021. 3. 20.
728x90

www.acmicpc.net/problem/3009

 

3009번: 네 번째 점

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

www.acmicpc.net


문제 접근

 1. 1번점과 2번점이 같고 1번점이 3번점과 다르다면 4번점은 3번점과 같다.

 2. 1번점과 2번점이 다르고 1번점과 3번점이 같으면 4번점은 2번점과 같다.

 3. 1번점과 2번점이 다르고 1번점과 3번점이 다르면 4번점은 1번점과 같다.

느낀점

생각보다 쉽게 풀어서 다른 분들의 코드를 봤는데 배열을 2개 만들던가 각 위치마다 따로 변수를 만들었다.

뭔가 혼자 2차원 배열로 문제를 푼 것 같아서 뿌듯했다.

근데 직사각형이 만들어지지 않는 조건을 넣어야하나 했는데 정답이길레 싱겁다는 생각이 들었다. 

난이도가 너무 내려가는 것 같다는 말을 해서 다음 문제가 어려울 것만 같은 플래그를 세웠다.

코드

#include <stdio.h>

int main() {
	int arr[4][2] = {};
	for (int i = 0;i < 3;i++) {
		scanf("%d %d", &arr[i][0], &arr[i][1]);
	}
	for (int i = 0; i < 2;i++) {
		if (arr[0][i] == arr[1][i]) {
			if (arr[0][i] != arr[2][i]) {
				arr[3][i] = arr[2][i];
			}
		}
		else if (arr[0][i] == arr[2][i]) {
			arr[3][i] = arr[1][i];
		}
		else arr[3][i] = arr[0][i];
	}
	printf("%d %d", arr[3][0],arr[3][1]);
	

	return 0;
}

댓글