문제 >
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
입력 >
세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.
출력 >
직사각형의 네 번째 점의 좌표를 출력한다.
해결방법 >
양 변이 평행한 직사각형이 되려면 각 좌표가 (x1, y1), (x1, y2), (x2, y1), (x2, y2) 인 네 점으로 이루어져야하므로
x1(2개), x2(2개), y1(2개), y2(2개)가 있어야한다.
따라서 입력된 데이터 중 1개 씩만 존재하는 x, y값을 찾아낸다.
c++
#include <iostream>
using namespace std;
int main(){
int x[3], y[3];
int a, b;
for(int i = 0; i < 3; i++){
cin >> x[i] >> y[i];
}
a = (x[0] == x[1]) ? x[2] : ((x[1] == x[2]) ? x[0] : x[1]);
b = (y[0] == y[1]) ? y[2] : ((y[1] == y[2]) ? y[0] : y[1]);
cout << a << ' ' << b;
}
java
package baekjoon;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] x = new int[3];
int[] y = new int[3];
int dx, dy;
for(int i = 0; i < 3; i++) {
x[i] = sc.nextInt();
y[i] = sc.nextInt();
}
if(x[1] == x[2])
dx = x[0];
else
dx = (x[0] == x[1]) ? x[2] : x[1];
if(y[1] == y[2])
dy = y[0];
else
dy = (y[0] == y[1]) ? y[2] : y[1];
System.out.println(dx + " " + dy);
}
}
문제링크 >
https://www.acmicpc.net/problem/3009
3009번: 네 번째 점
문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 예제 입력 1 복사 30 20 10 10 10 20 예제 출력 1 복사 30 10...
www.acmicpc.net
'Problem Solving > BOJ' 카테고리의 다른 글
[백준] 3053번 - 택시 기하학 (0) | 2020.01.10 |
---|---|
[백준] 4153번 - 직삼각형 (0) | 2020.01.10 |
[백준] 4948번 - 베르트랑 공준 (0) | 2020.01.10 |
[백준] 2775번 - 부녀회장이 될테야 (0) | 2020.01.10 |
[백준] 10250번 - ACM 호텔 (0) | 2020.01.10 |
댓글