BAEKJOON/단계별로 풀어보기

[BOJ] 3009번 : 네번째 점

말하는 알감자 2022. 9. 27. 20:16

🔒 문제

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

⌨ 입력

세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.

🖨 출력

직사각형의 네 번째 점의 좌표를 출력한다.

📚 예제

Ex1)

5 5
5 7
7 5

7 7

Ex2)

30 20
10 10
10 20

30 10

📌 풀이

좌표에 쓰이는 값들은 a,b,c,d 이다.
직사각형을 그리는데 a,b,c,d 는 각각 총 2번 쓰인다.
그러면 나머지 한 좌표를 구할 때는 주어진 세 좌표에서 한번씩만 사용된 값들을 이용하면 된다.

예를들어 문제에서 (a,b) (c,b) (c,d) 를 준다면, a는 1번 b는 2번, c는 2번, d는 1번 사용했으니
구해야하는 나머지 한 점의 좌표는 (a,d)가 된다.

🔑 python 코드

import sys
from collections import defaultdict

rec_x = defaultdict(int)
rec_y = defaultdict(int)
for i in range(3):
    x,y = map(int,sys.stdin.readline().split())
    rec_x[x]+=1
    rec_y[y]+=1

for key, value in rec_x.items():
    if value == 2: continue
    x = key
for key, value in rec_y.items():
    if value == 2: continue
    y = key

print(x,y)