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)
'practivceAlgorithm > 다시 봐야할 문제들' 카테고리의 다른 글
[백준][Python] 1865 웜홀 (0) | 2021.12.08 |
---|---|
[codeforce][Python] #690 E2. Close Tuples (hard version) (0) | 2021.12.07 |
[Codeforce][Python] #702 G. Old Floppy Drive (0) | 2021.11.09 |
[백준][Python][2021 하반기 삼성 코딩테스트] 23291 어항정리 (0) | 2021.10.30 |
[백준][Python][삼성 2021 하반기 코딩테스트] 23289 온풍기 안녕! (0) | 2021.10.26 |