촉촉한초코칩

[백준] **3009(네 번째 점) Python 본문

Algorithm

[백준] **3009(네 번째 점) Python

햄친구베이컨 2024. 9. 14. 22:37

문제

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

입력

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

출력

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


입력받은 숫자들의 X, Y 따로 요소 별 개수를 센다. → Counter 함수 사용 

그 개수 중 작은 걸 answer에 출력해준다. 

from collections import Counter

X = []
Y = []
len_arr = []
answer = []

for i in range(0,3):
    x, y = map(int, input().split())
    X.append(x)
    Y.append(y)

#요소 별 개수 세기 
counts = Counter(X) #Counter({5: 4, 7: 2})
# print(len(counts.items())) #2

for element, count in counts.items():
    len_arr.append(count)
    tmp = min(len_arr)

for k, v in counts.items():
    if v == tmp:
        answer.append(k)

counts = Counter(Y)

for element, count in counts.items():
    len_arr.append(count)
    tmp = min(len_arr)

for k, v in counts.items():
    if v == tmp:
        answer.append(k)

print(*answer)

 

X, Y 따로 했지만 뭔가 방법이 있을 것 같기도 하다.. 

전체 리스트로 합친 다음 가장 최대 중복 횟수를 구하고, 그 횟수에 미치지 않는 숫자들이 정답이 되는데 다음에 해보자..ㅎㅎ