입력 코드
#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로 더 깔끔하게 작성할 수도 있을 것 같다.
↓↓↓ 참고한 사이트
[C 언어] 백준 3009. 네 번째 점
3009. 네 번째 점 (누르면 해당 문제로 이동) 직사각형을 완성하는 문제 제약사항) 시간 : 1 초 메모리 : 128 MB 문제) 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점
mjeong9316.tistory.com
문제 출처
3009번: 네 번째 점
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
www.acmicpc.net
'C' 카테고리의 다른 글
#43. [백준_C언어] 3053 : 택시 기하학 (0) | 2021.01.22 |
---|---|
#42. [백준_C언어] 4153 : 직각삼각형 (0) | 2021.01.21 |
#40. [백준_C언어] 10757 : 큰 수 A+B (1) | 2021.01.20 |
#39. [백준_C언어] 2839 : 설탕 배달 (0) | 2021.01.20 |
#38. [백준_C언어] 2775 : 부녀회장이 될테야 (0) | 2021.01.19 |