Adventure Time - Jake [백준/python] 3009 네번째점: else문에 대한 생각?
본문 바로가기
Back-end/백준(python)

[백준/python] 3009 네번째점: else문에 대한 생각?

by bogyoi 2023. 10. 25.

문제


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

입력


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

출력


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

예제 입력 1


 
5 5 5 7 7 5

 

 

예제 출력 1


 
7 7

 

예제 입력 2


 
30 20 10 10 10 20

 

예제 출력 2


 
30 10

 

 

 

작성 코드:

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

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

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

print(x4,y4)
 

1트만에 성공.

근데 클린코드를 위해선 else 사용을 자제하고 알아보기쉽게 elif로 사용하는 것이 더 좋을 것 같다는 생각이 들었다.

 

그 외 다른 사람들의 코드를 보니까 for-loop를 사용한 사람들도 꽤 있더라.

x_nums = []
y_nums = []
for _ 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)