백준 파이썬 3009: 네 번째 점

2022. 5. 1. 19:44컴퓨터 사이언스/Algorithm

반응형

네 번째 점 성공다국어

한국어   
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB 31100 22474 20247 73.260%

문제

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

입력

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

출력

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

 

 


 

내 정답 코드

 

x = []
y = []

# x와 y 좌표들을 입력받습니다!
for i in range(3):
    a, b = map(int, input().split())
    x.append(a)
    y.append(b)
 
# x와 y 좌표들중 중복된 것이 있다면 변수에 저장해줍니다!
for j in range(3):
    if x.count(x[j]) > 1:
        xrepeated_num = x[j]

    if y.count(y[j]) > 1:
        yrepeated_num = y[j]
        

# x와 y중 중복된 것들을 제거해줍니다!
while xrepeated_num in x:
    x.remove(xrepeated_num)

while yrepeated_num in y:
    y.remove(yrepeated_num)

print("{0} {1}".format(x[0], y[0]))

_ 평행한 직사각형의 특징을 이용하여 해당 문제를 해결하였습니다. 입력 예시를 통해서 위 코드를 설명해드리겠습니다!

 

입력 예시는 아래와 같습니다!

1번째   x: 5,    y: 5

2번째   x: 5,    y: 7

3번째   x: 7,    y: 5

 

위를 좌표 형식으로 생각한다면 x의 점들은 5와 7 위에 위치할 것이고, y의 점또한 5와 7에 위치할 것입니다. 

이 때 중요한 것은 평행한 직사각형의 좌표이기에 이미 두개가 표시된(=중복된) 좌표는 새로운 좌표가 올 수 없기에 제거해주면 x는 7, y는 7이 남아 답이 됩니다!!!

반응형