© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 3009 - 네 번째 점

2023-10-05
BOJ
브론즈 III
java
원본 문제 보기
구현
기하학

문제

BOJ 3009 - 네 번째 점

축에 평행한 직사각형의 세 꼭짓점이 주어질 때, 나머지 한 꼭짓점의 좌표를 구한다.

입력

세 줄에 걸쳐 세 점의 x, y 좌표가 주어진다.

출력

네 번째 점의 x, y 좌표를 출력한다.

예제

입력출력
5 5 5 7 7 57 7

풀이

축에 평행한 직사각형에서 x좌표와 y좌표는 각각 정확히 두 개씩 같은 값이 존재한다. 세 점 중 짝이 없는 좌표가 네 번째 점의 좌표이다.

  1. 세 점의 좌표를 읽는다
  2. x좌표 중 두 점이 같은 값이면 나머지 하나가 네 번째 점의 x좌표이다
  3. y좌표도 동일한 방식으로 결정한다
  4. 구한 (x, y)를 출력한다

핵심 아이디어: 직사각형의 대변은 평행하므로, 각 축에서 한 번만 등장하는 좌표값이 네 번째 점의 좌표가 된다.

코드

package day649;
 
import java.io.*;
import java.util.*;
 
public class Day608BOJ3009네번째점 {
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine(), " ");
 
    int[] coord_1 = { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) };
    st = new StringTokenizer(br.readLine(), " ");
    int[] coord_2 = { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) };
    st = new StringTokenizer(br.readLine(), " ");
    int[] coord_3 = { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) };
 
    int x;
    int y;
 
    if (coord_1[0] == coord_2[0])
      x = coord_3[0];
    else if (coord_1[0] == coord_3[0])
      x = coord_2[0];
    else
      x = coord_1[0];
 
    if (coord_1[1] == coord_2[1])
      y = coord_3[1];
    else if (coord_1[1] == coord_3[1])
      y = coord_2[1];
    else
      y = coord_1[1];
 
    System.out.println(x + " " + y);
  }
}

복잡도

  • 시간: O(1)
  • 공간: O(1)