https://www.acmicpc.net/problem/3009
3009번: 네 번째 점
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
www.acmicpc.net
문제
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
입력
세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.
출력
직사각형의 네 번째 점의 좌표를 출력한다.
첫 번째 시도
package ex1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Main3 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String a[] = br.readLine().split(" ");
String b[] = br.readLine().split(" ");
String c[] = br.readLine().split(" ");
int a1 = Integer.parseInt(a[0]);
int a2 = Integer.parseInt(a[1]);
int b1 = Integer.parseInt(b[0]);
int b2 = Integer.parseInt(b[1]);
int c1 = Integer.parseInt(c[0]);
int c2 = Integer.parseInt(c[1]);
int r1 = 0;
int r2 = 0;
if (a1 == b1) {
r1 = c1;
if (a2 == b2) {
r2 = c2;
} else if (a2 == c2) {
r2 = b2;
} else if (b2 == c2) {
r2 = a2;
}
} else if (a1 == c1) {
r1 = b1;
if (a2 == b2) {
r2 = c2;
} else if (a2 == c2) {
r2 = b2;
} else if (b2 == c2) {
r2 = a2;
}
} else if (b1 == c1) {
r1 = a1;
if (a2 == b2) {
r2 = c2;
} else if (a2 == c2) {
r2 = b2;
} else if (b2 == c2) {
r2 = a2;
}
}
System.out.println(r1 + " " + r2);
}
}
해결 방법
- 주어진 세 점 중 x좌표가 같은 두 개의 점을 제외한 점의 x좌표를 네 번째 점의 x좌표로, y좌표가 같은 두 개의 점을 제외한 점의 y좌표를 네 번째 점의 y좌표로 하면 축에 평행한 직사각형을 만들 수 있다.
반응형
'알고리즘 문제 풀이 (Problem Solving)' 카테고리의 다른 글
[Problem Solving/Java] 백준 1002번 - 터렛 (1) | 2024.01.02 |
---|---|
[Problem Solving/Java] 백준 4153번 - 직각삼각형 (0) | 2024.01.02 |
[Problem Solving/Java] 백준 1085번 - 직사각형에서 탈출 (0) | 2024.01.02 |
[Problem Solving/Java] 백준 4948번 - 베르트랑 공준 (2) | 2024.01.02 |
[Problem Solving/Java] 백준 1929번 - 소수 구하기 (0) | 2024.01.02 |