[BOJ 문제 풀이] 3009번: 네 번째 점

Sam Kim·2022년 6월 29일
0

Coding Test

목록 보기
2/3
post-thumbnail

백준 온라인 저지 3009번 문제 풀이 [문제 링크]

축에 평행한 직사각형 각 모서리 세 점의 좌표가 주어질 때, 네 번째 점의 좌표를 구하는 방법.

[문제풀이]

축에 평행한 직사각형의 각 모서리 4개 점의 좌표값들은 x1x_1 2개와 x2x_2 2개, y1y_1 2개와 y2y_2 2개로 이루어져 있다.

모든 xx값과 yy값을 나열하면 x1,x1,x2,x2,y1,y1,y2,y3x_1, x_1, x_2, x_2, y_1, y_1, y_2, y_3 이다.
즉, 네 점의 각 좌표는 (x1x_1, y1y_1), (x1x_1, y2y_2), (x2x_2, y1y_1), (x2x_2, y2y_2) 이다.

그러므로 세 점의 좌표값이 아래와 같이 주어지는 경우,

(x1,y1)(x_1, y_1), (x2,y1)(x_2, y_1), (x2,y2)(x_2, y_2)

x1x_1 1개와 y2y_2 1개가 남으므로 남은 한 점의 좌표는 (x1,y2)(x_1, y_2)가 된다.

  • 즉, 중복되지 않은 xx값과 yy값이 네 번째 점의 좌표이다.

[예시]

(30, 20), (10, 10), (10, 20)

세 점의 좌표 위와 같이 주어지는 경우,

xx값 30, 10, 10 중 중복되지 않은 값은 30.
yy값 20, 10, 20 중 중복되지 않은 값은 10.

즉, 네 번째 점의 좌표는 (30,10)(30, 10)이 된다.

[답안 코드]

import sys
xs = []
ys = []
for _ in range(3):
  x, y = map(int,sys.stdin.readline().split())
  xs.remove(x) if x in xs else xs.append(x)
  ys.remove(y) if y in ys else ys.append(y)
print(xs[0], ys[0])

0개의 댓글