Study/알고리즘

[백준] 3009번_네번째점

혤리 2020. 2. 10. 10:54

문제 링크 : https://www.acmicpc.net/problem/3009

 

3009번: 네 번째 점

문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 예제 입력 1 복사 30 20 10 10 10 20 예제 출력 1 복사 30 10...

www.acmicpc.net

count를 활용하려다가 내가 사랑하는(?) defaultdict을 사용해 만들어보았다.

from collections import defaultdict
import sys
x = defaultdict(lambda:0) ; y = defaultdict(lambda:0)
for _ in range(3):
    a,b = map(int,input().split())
    x[a] += 1; y[b] += 1
for (key1,value1) in x.items():
    if value1 == 1:
        print(key1,end=" ")
        for (key2,value2) in y.items():
            if value2==1:
                print(key2)
                sys.exit()
    

 통과 후, 다시 count를 이용해 풀었는데 훨씬 깔끔하다^_^

x = []; y = []
for _ in range(3):
    a,b = map(int,input().split())
    x.append(a); y.append(b)

for i in range(3):
    if x.count(x[i]) == 1:
        px = x[i]
    if y.count(y[i]) == 1:
        py = y[i]
print(px,py)