View

[Python] Baekjoon 백준 3009번 네 번째 점

 

문제

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

입력

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

출력

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

 

 

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

x.sort()
y.sort()

if x.count(x[0]) == 1:
    print(x[0], end=" ")
else: print(x[-1], end=" ")

if y.count(y[0]) == 1:
    print(y[0])
else: print(y[-1])

 

문제에서 간단한 규칙을 찾았다

입력받은 점 3개와 나머지 한점으로 사각형을 이루려면

입력받은 x 또는 y 좌표 각각 동일한 숫자 2개씩 이루어야 한다

 

예)

30 20

10 10

10 20

 

x 좌표

10 -> 2개

30 -> 1개

y 좌표

10 -> 1개

20 -> 2개

 

x, y 각각 2개씩 맞춰주면 된다

결론 x 는 30 y는 10

 

그래서

입렵받은 값을 x 좌표 따로 y 좌표 따로 리스트로 묶었다

그후, 각 각 정렬을 해주고

x[0] 의 카운트 숫자가 1이면 1개 이니까 x[0] 출력

2개이면 x[-1] 즉, 거꾸로 뒤에꺼 출력 한다

y 도 마찬가지로 출력

 

 
 

 

 

반응형
Share Link
reply