문제
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
입력
세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.
출력
직사각형의 네 번째 점의 좌표를 출력한다.
코드
package Bronze;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main3009 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int[] arr1 = { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) };
st = new StringTokenizer(br.readLine()," ");
int[] arr2 = { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) };
st = new StringTokenizer(br.readLine()," ");
int[] arr3 = { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) };
int x = 0,y = 0;
if(arr1[0] == arr2[0]){
x = arr3[0];
}
else if (arr1[0] == arr3[0]){
x = arr2[0];
}
else if (arr2[0] == arr3[0]){
x = arr1[0];
}
if(arr1[1] == arr2[1]){
y = arr3[1];
}
else if (arr1[1] == arr3[1]){
y = arr2[1];
}
else if (arr2[1] == arr3[1]){
y = arr1[1];
}
System.out.println(x + " " + y);
}
}
풀이
알고리즘은 크게 어렵지 않다. 하나하나 비교를 했다.
한번 입력을 받을 때 마다
st = new StringTokenizer(br.readLine()," ");
를 해줘야한다
<구글링>
다른 방법으로는 br.readLine().split(" "); 을 통해 문자열 배열로 하여 equals 메소드로 비교를 하는 방법도 있다.
'Programming > Algorithm' 카테고리의 다른 글
[백준] 3053번 : 택시 기하학 (Java) (0) | 2021.09.05 |
---|---|
[백준] 4153번 : 직각삼각형 (Java) (0) | 2021.09.02 |
[백준] 1085번 : 직사각형에서 탈출 (Java) (0) | 2021.08.08 |
[백준] 4948번 : 베르트랑 공준 (Java) (0) | 2021.08.08 |
[백준] 1929번 : 소수 구하기 (Java) (0) | 2021.08.06 |
댓글