practivceAlgorithm/다시 봐야할 문제들
[백준][Python] 18869 멀티버스 : 좌표압축
findTheValue
2022. 1. 24. 00:13
hashmap에 tuple로 조합수를 구하는 것까지는 접근했는데
set으로 압축시키는 것은 생각을 못했음.
이러면 결국 tuple에 각 순위값이 들어가게 되는데
동일한 요소의 경우 묶여서 사라지기때문에
순위값의 갯수가 적어져 일일히 비교할 필요가 없어짐.
정렬과 indexing을 같이 사용해서 크기 비교를 해야할 때 유용하게 쓸 수 있을 것으로 보임
import sys
input = sys.stdin.readline
from collections import defaultdict
m, n = map(int, input().split())
universe = defaultdict(int)
for _ in range(m):
planets = list(map(int, input().split()))
keys = sorted(list(set(planets)))
ranks = {keys[i]: i for i in range(len(keys))}
add = tuple([ranks[x] for x in planets])
universe[add] += 1
ans = 0
for cnt in universe.values():
ans += cnt * (cnt - 1) // 2
print(ans)