작심삼일

[LeetCode] 1207 | Unique Number of Occurrences | Python 본문

스터디/코테

[LeetCode] 1207 | Unique Number of Occurrences | Python

yun_s 2022. 11. 30. 09:18
728x90
반응형

문제 링크: https://leetcode.com/problems/unique-number-of-occurrences/


문제

Given an array of integers arr, return true if the number of occurrences of each value in the array is unique, or false otherwise.


조건

  • 1 <= arr.length <= 1000
  • -1000 <= arr[i] <= 1000

내 풀이

collections 모듈의 Counter를 사용한다.

Counter를 사용하면 각 원소들이 나오는 빈도수를 세준다.

(ex. a = [1, 1, 2, 3, 3, 3], Counter(a) $\rightarrow$ {1: 2, 2: 1, 3: 3})

Counter의 key에는 원소가, value에는 원소의 빈도수들이 저장된다.

 

python의 set은 중복을 없애준다. (ex. set([1, 1, 2, 3]) $\rightarrow$ {1, 2, 3})

따라서 sorted(value) == sorted(set(value))가 성립한다면 빈도수가 중복되지 않으므로 True를 리턴하고, 그렇지 않은 경우에 False를 리턴한다.


코드

class Solution:
    def uniqueOccurrences(self, arr: List[int]) -> bool:
        value = Counter(arr).values()
        
        return True if sorted(value) == sorted(set(value)) else False
728x90
반응형
Comments