본문 바로가기
TIL

[TIL] 리스트 빈도 구하기

by chengzior 2024. 11. 5.

리스트 요소의 빈도 구하기

class Solution {
  bool uniqueOccurrences(List<int> arr) {
    Map<int,int> frequency = {};
    for (int num in arr){
        frequency[num] = (frequency[num] ?? 0) + 1;
    }
    List<int> frequencies = frequency.values.toList();

    // 빈도의 고유성 검사
    return frequencies.length == frequencies.toSet().length;
  }
}

map으로 요소와 빈도수를 받을 예정.

주어진 배열에서 요소를 하나씩 꺼내와서 frequency라는 맵이랑 비교

키가 요소이고 값이 빈도수.

frequncy[num]이 없으면 null 이기에 0으로 값을 주고 그 값에 1을 더해서 빈도수(값)을 1로 만든다.
만약 이미 존재한다면 +1을 통해 빈도수를 늘려준다.

map의 값만 리스트로 만들어주고
만약 각 요소의 빈도수가 고유한지, 겹치는 값이 없는지 검사해준다.

중복을 제거했을 때도 그 전 리스트와 같다면 중복된 값이 없다는 뜻.


이해하고 나면 간단한 코드인데 막상 문제를 보고 구현하려면 생각이 잘 떠오르지 않는다.
다트 문법을 좀 더 복습해야 할 듯.

'TIL' 카테고리의 다른 글

RPG 전투 게임  (0) 2024.11.07
[TIL] 큐&연결리스트  (0) 2024.11.06
[TIL] 비동기 프로그래밍  (0) 2024.11.04
[TIL] 예외/오류  (0) 2024.11.01
[TIL] 콘솔 쇼핑몰 만들기  (0) 2024.10.31