상세 컨텐츠

본문 제목

백준[3009번]:: 네번째 점(Pythoh,파이썬)

Dong_Eun2(이동은)/알고리즘(백준)

by Dong_Eun2 2020. 9. 12. 15:30

본문

www.acmicpc.net/problem/3009

 

3009번: 네 번째 점

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

www.acmicpc.net

 

 

나의 코드:

 

x1,y1 = map(int,input().split())
x2,y2 = map(int,input().split())
x3,y3 = map(int,input().split())
x4 = 0 
y4 = 0

if x1 == x2:
    x4 = x3
elif  x2 == x3: 
    x4 = x1
elif x1 == x3: 
    x4 = x2

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

print(x4,y4)


 

처음에 위 문제는 어떻게 남들이 알아보기 쉽게 코드를 작성 할 수 있을지 생각해보았지만, 아직 실력이 부족해서 약간의 If문의 반복된 작업을 통해 문제를 해결하였다. x1 축과 x2축이 같으면 자동적으로 현재 구하는 x4좌표는 x3과 같을 것이다.  그리고 x2와 x3의 x좌표가 같으면 또한 x1과 x4도 똑같을 것이다. 이를 Y축에도 적용하여 위와같이 작성하면 답을 구할 수 있다.  

 

 

 

리스트를 이용한 코드:

x_nums = []
y_nums = []
x4 = 0
y4 = 0  
for i in range(3):
    x,y = map(int,input().split())
    x_nums.append(x)
    y_nums.append(y)

for i in range(3):
     if x_nums.count(x_nums[i]) == 1:
            x4 = x_nums[i]
     if y_nums.count(y_nums[i]) == 1:
            y4 = y_nums[i]

print(x4,y4)

X좌표를 x_nums에 전부 넣고, Y좌표도 마찬가지에 y_nums에 리스트 형식으로 넣는다.

ex) X_nums = [30 , 10 , 10]

     Y_nums = [20, 10 , 20]

그리고 for문으로 해당값의 count를 세어 1인 경우에 그 값은 위의 그림판과 같이 x4의 좌표가 된다.

관련글 더보기

댓글 영역