알고리즘
백준 - 3009번
joy_lee
2021. 8. 10. 20:32
네 번째 점
https://www.acmicpc.net/problem/3009
3009번: 네 번째 점
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
www.acmicpc.net
문제에서 만들어지는 직사각형이 축에 평행한 직사각형이라고 했으니 만들어지는 직사각형은 다음과 같이 그릴 수 있다.
모든 좌표값을 모아서 본다면 x축은 a가 2번, b가 2번 사용되고 y축은 x가 2번, y가 2번 사용된다.
입력받은 세 좌표들을 보고 한 번만 나온 값들을 적으면 되는 것이다.
코드로는 어떻게 찾아야 할지 고민하다가 list와 set을 사용했다.
1
2
3
4
5
6
7
8
|
x1, y1 = map(int, input().split())
x2, y2 = map(int, input().split())
x3, y3 = map(int, input().split())
list_x = [x1, x2, x3]
list_y = [y1, y2, y3]
x4 = sum(set(list_x))*2 - sum(list_x)
y4 = sum(set(list_y))*2 - sum(list_y)
print(x4, y4)
|
cs |
입력받은 x좌표끼리, y좌표끼리 각각 list에 넣는다.
set으로 변환해 중복값을 없애고 (set의 합)*2 - (list의 합)으로 남은 좌표를 구했다.