촉촉한초코칩
[백준] **3009(네 번째 점) Python 본문
문제
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
입력
세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 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 따로 했지만 뭔가 방법이 있을 것 같기도 하다..
전체 리스트로 합친 다음 가장 최대 중복 횟수를 구하고, 그 횟수에 미치지 않는 숫자들이 정답이 되는데 다음에 해보자..ㅎㅎ
'Algorithm' 카테고리의 다른 글
[백준] 15894(수학은 체육과목 입니다) Python, C (1) | 2024.09.29 |
---|---|
[백준] 1085(직사각형에서 탈출) Python, C언어 (0) | 2024.09.23 |
[백준] 27323(직사각) Python, C언어 (0) | 2024.09.14 |
[백준] 2292(벌집) Python (0) | 2024.09.14 |
[백준] 11005(진법 변환 2) C언어 (0) | 2024.09.07 |