반응형
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();
}
}
반응형
'문제풀이' 카테고리의 다른 글
[JAVA] 백준 3053번 택시 기하학 : 유추 (0) | 2021.07.24 |
---|---|
[JAVA] 백준 1002번 터렛 : 두 원의 교차점 (0) | 2021.07.24 |
[JAVA] 백준 1085번 직사각형에서 탈출 : 단서로 풀기 (0) | 2021.07.22 |
[JAVA] 백준 1011번 Fly me to the Alpha Centauri : 부등식과 반복문 3 (0) | 2021.07.20 |
[JAVA] 백준 10757번 큰 수 A + B : BigInteger, StringBuilder (0) | 2021.07.19 |