https://www.acmicpc.net/problem/3009
3009번: 네 번째 점
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
www.acmicpc.net
접근 :
- 좌표 3개의 값을 받아 x 좌표 배열, y 좌표 배열로 입력한다.
- 직사각형 이기 때문에 같은 값의 좌표가 2개 씩 쌍으로 존재해야 한다.
- 입력 받은 좌표 중 쌍을 이루지 않는 1개의 값을 찾아서 나머지 1개 의 값의 좌표로 입력한다.
- x 좌표값 기준으로 경우의 수를 나누어 보면
1, 1, 3, target_x 인 경우( 1번째 x 좌표값과 2번째 x 좌표의 값이 같은 경우 3번째 값이 target 값이 된다)
1, 3, 1 ,target_x 인 경우( 1번째 x 좌표값과 3번째 x 좌표의 값이 같은 경우 2번째 값이 target 값이 된다)
1, 3, 3, target_x 인 경우 ( 1번째 x 좌표값과 2, 3 번 값이 다른 경우 1번째 값이 target 값이 된다)
- y 좌표값도 동일하게 경우의 수를 나뉠 수 있다.
코드 구현 :
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input;
int[] x_array = new int[3];
int[] y_array = new int[3];
for (int i = 0; i < 3; i++) {
input = br.readLine().split(" ");
x_array[i] = Integer.parseInt(input[0]);
y_array[i] = Integer.parseInt(input[1]);
}
int x = 0;
if (x_array[0] == x_array[1]) {
x = x_array[2];
} else if (x_array[0] == x_array[2]) {
x = x_array[1];
} else {
x = x_array[0];
}
int y = 0;
if (y_array[0] == y_array[1]) {
y = y_array[2];
} else if (y_array[0] == y_array[2]) {
y = y_array[1];
} else {
y = y_array[0];
}
System.out.println(x + " " + y);
br.close();
}
}
'JAVA > Coding Test' 카테고리의 다른 글
[JAVA] 백준 1002 터렛_기하1 (0) | 2023.03.07 |
---|---|
[JAVA] 백준 2477 참외밭_기하1 (0) | 2023.03.06 |
[JAVA] 백준 1085 직사각형에서 탈출_기하1 (0) | 2023.03.06 |
[JAVA] 백준 11478 서로 다른 부분 문자열의 개수_집합과맵 (0) | 2023.03.05 |
[JAVA] 백준 1269 대칭 차집합_집합과맵 (0) | 2023.03.05 |