문제풀이

[JAVA] 백준 3009 네 번째 점 : Simple is best

IT록흐 2021. 7. 23. 09:39
반응형
 

3009번: 네 번째 점

세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.

www.acmicpc.net

 

 

1. 문제 추상화

 

3개의 좌표가 주어 질 때, 직사각형을 만드는 네 번째 점의 좌표를 구하시오.

 

2. 알고리즘 

 

코드는 단순함이 중요하다. 반복문, 조건문을 자주 사용하는 것보다 가독성 있는 코드를 지향해야한다.

 

1. 직사각형은 x축과 y축의 대칭이다.

그러므로 x좌표와 y좌표는 x1,x2 와 y1, y2  두 값만 가진다.

 

2. 주어진 세 좌표 중  x1,x2 와 y1, y2가 한 번만 나온 값이 네번째 좌표가 된다.

 

 

3. 코드

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		StringTokenizer stz;
		
		stz = new StringTokenizer(br.readLine()," ");
		int x1 = Integer.parseInt(stz.nextToken());
		int y1 = Integer.parseInt(stz.nextToken());
		
		stz = new StringTokenizer(br.readLine()," ");
		int x2 = Integer.parseInt(stz.nextToken());
		int y2 = Integer.parseInt(stz.nextToken());
		
		stz = new StringTokenizer(br.readLine()," ");
		int x3 = Integer.parseInt(stz.nextToken());
		int y3 = Integer.parseInt(stz.nextToken());
		
		
		int x4 = (x3 == x1) ? x2 : (x3 == x2) ? x1 : x3;
		int y4 = (y3 == y1) ? y2 : (y3 == y2) ? y1 : y3;
		
		bw.write(x4+" "+y4);
		bw.flush();
		bw.close();
		br.close();
		
	}
}
반응형