Notice
Recent Posts
Recent Comments
Link
관리 메뉴

윤일무이

[백준-Python] 3009번: 네 번째 점 본문

🥧 Python/⚙️ 코딩테스트

[백준-Python] 3009번: 네 번째 점

썸머몽 2023. 2. 16. 00:46
728x90
 

3009번: 네 번째 점

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

www.acmicpc.net

 

풀이

세 점의 좌표가 주어질 때 직사각형을 만들기 위해 필요한 네 번째 점을 찾아야 한다.

한 점의 좌표가 한 줄에 출력된다. 

 

a, b = map(int, input().split())

c, d = map(int, input().split())

e, f = map(int, input().split())

 

직사각형이면 2 6 / 6 2 / 2 2 이런 식으로 값을 넣는다고 치면

나머지 값이 6 6 이 나와야 직사각형이 된다.

구해야 할 한 점의 좌표를 x, y로 뒀다.

 

근데 이건 어떻게 해야 할지 잘 모르겠어서 그냥 틀릴 각오를 하고 if문 (또 ^_ㅠ...)를 써서 풀었다.

근데 맞긴 맞아서... 어떻게 하면 더 생산성 있는 코드가 될지 질문 글을 남겨두긴 했는데 아직 소식이 없다.

다른 사람들 코드도 궁금해서 보긴 했는데 잘 이해가 안돼서...

내일은 알고리즘 n개 풀고 모르는 매서드랑 다른 사람들 풀이 좀 공부해봐야겠다... 갑자기 우울해지네 히유

 

아무튼! 위처럼 코드들이 좀 비슷해야 하기 때문에

a == c라면 x == e랑

a == e라면 x == c랑

그 외(e == c)라면 x == a로 한다.

 

y좌표도 위와 똑같이 구해주면 되고

print(x, y)하면 된다.

 

잘 몰라서 푸는 것도 못 했을 때에는 그래도 맞으면 기분이 좋았는데,

이제는 맞아도 왜 맞지...? 이거 이렇게밖에 안되나...? 하는 생각이 먼저 들어서 답답하다.

첫 술에 배부르려는 못된 심보 나가 ~~

 

코드

a, b = map(int, input().split())
c, d = map(int, input().split())
e, f = map(int, input().split())

if a == c :
    x = e
elif a == e :
    x = c
else :
    x = a

if b == d :
    y = f
elif b == f :
    y = d
else :
    y = b

print(x, y)
728x90