320x100
문제 : https://leetcode.com/problems/unique-number-of-occurrences/
set, map을 사용.
arr 배열을 탐색하면서 set에 arr[i]들을 저장한다.
map은 arr[i]이 나온횟수를 저장하는 cnt, cnt의 value가 나온 횟수를 저장하는 num. 총 2개의 map을 준비한다.
즉, arr = { 1, 2, 2, 1, 1, 3, 2 } 이라면
cnt = { (1, 3), (2, 3), (3, 1) }
num = { (1,1), (3, 2) }
이 된다.
arr 배열을 탐색하면서 map1, map2개를 세팅한다.
그리고 num[i] = 1 이 되는 모든 i의 개수(uniqueNumCnt)를 구한다.
위 예제에서는 1이 된다.
만약 uniqueNumCnt이 set의 크기와 같다면 true, 다르다면 false가 된다.
시간복잡도는 O(NlogN). N은 |arr|이다.
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[leetcode][1186] Maximum Subarray Sum with One Deletion (0) | 2019.10.05 |
---|---|
[leetcode][1209] Remove All Adjacent Duplicates in String II (0) | 2019.10.03 |
[leetcode][1190] Reverse Substrings Between Each Pair of Parentheses (0) | 2019.10.01 |
[leetcode][1189] Maximum Number of Balloons (0) | 2019.09.25 |
[leetcode][1202] Smallest String With Swaps (0) | 2019.09.23 |
댓글