Python/online judge

백준 [3009.네 번째 점] | Python

구름솜:D 2024. 1. 29. 15:04
728x90

✏️ 문제

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

 

3009번: 네 번째 점

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

www.acmicpc.net

 

✏️ 풀이방법

- 직사각형의 한 변은 같은 축에서 같은 좌표의 점이 2개 필요하다.

(예를들어 x축에서 x좌표가 3인 점이 두개 필요하다는 것이다. y값은 서로 다르다.) 

1. 이를 활용해서 직사각형의 4개의 점 중 x,y각 축에서 좌표가 같은 점이 2개씩 있는 것을 확인한다.

2. x좌표와 y좌표를 담는 리스트를 각각 생성

3. 리스트 안에 값이 1개만 있는 좌표의 값을 찾는다.

 

 

📌 코드

points = [list(map(int,input().split())) for _ in range(3)]
x = [points[i][0] for i in range(3)]
y = [points[i][1] for i in range(3)]

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)

 

 

📌 결과

#입력
5 5
5 7
7 5

#출력
7 7

 

 

 

🔎  다른 풀이

# 주어진 세 점의 좌표
x1,y1=map(int,input().split())
x2,y2=map(int,input().split())
x3,y3=map(int,input().split())

# 네번째 점의 좌표 0,0으로 초기화
x4=y4=0

# 축에 평행한 직사각형을 만들기 위해 x값이 같은 점을 기준으로 함
if x1==x2:
    x4=x3
elif x1==x3:
    x4=x2     
elif x2==x3:
    x4=x1
    y4=y1+(y3-y2)

if y1==y2:
    y4=y3
elif y1==y3:
    y4=y2
elif y2==y3:
    y4=y1

print(x4,y4)

- https://dduniverse.tistory.com/

-  각 좌표의 경우의 수를 비교해서 하나의 점을 찾는다.