Leetcode Python - 1647. Minimum Deletions to Make Character Frequencies Unique
Leetcode #1647 - Minimum Deletions to Make Character Frequencies Unique
이제 두 번째로 100 문제들을 풀어보겠습니다. 리트코드의 문제 1647 ‘Minimum Deletions to Make Character Frequencies Unique’을 파이썬으로 풀어 보도록 하겠습니다.
discuss 참고 포인트는 dictionary 에 저장 후,set으로 해당 숫자가 있으면 -1 해줍니다.
전체 코드는 아래와 같습니다.
class Solution:
def minDeletions(self, s: str) -> int:
freq = {}
for c in s:
freq[c] = 1 + freq.get(c,0)
seen = set()
ans = 0
for k in freq.values():
while k in seen:
k -= 1
ans += 1
if k:
seen.add(k)
return ans
시간복잡도는
- O(n) : O(n) + O(kn) (k는 seen 크기) 최악의 경우 O(n^2) : k가 n일 경우
공간복잡도는
- O(n) : freq(n) + seen(k) (최악의 경우 k = n)