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/
- 각 좌표의 경우의 수를 비교해서 하나의 점을 찾는다.