본문 바로가기
백준 알고리즘(BOJ)

백준 알고리즘 3009 (네 번째 점) - python

by Think_why 2019. 10. 16.

[문제] 백준 알고리즘 3009 (네 번째 점)

https://www.acmicpc.net/problem/3009

 

3009번: 네 번째 점

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

www.acmicpc.net

 

세 점이 주어지고, 직사각형을 만들기 위한 마지막 한 점을 찾는 문제이다.

직사각형 점은 x와 y로 표현하면 (x1, y1), (x1, y2), (x2, y1), (x2, y2)의 네 점을 가지므로

x1, x2, y1, y2가 각각 2번씩 쓰이는 구조가 된다.

따라서, 브루트 포스를 이용해 카운트했을 때, 1번만 쓰인 x와 y값을 출력하면 된다.

 

[Code]

dots = []
for _ in range(3):
    dots.append(tuple(map(int, input().split())))
x, y = 0, 0
for (i1, i2) in dots:
    cnt1, cnt2 = 0, 0
    for (j1, j2) in dots:
        cnt1 += 1 if i1 == j1 else 0
        cnt2 += 1 if i2 == j2 else 0
    if cnt1 == 1:
        x = i1
    if cnt2 == 1:
        y = i2
print(x, y)
728x90

댓글