늘 겸손하게

LeetCode 961 - N-repeated Element in Size 2N Array ( JavaScript ) 본문

코딩 문제/LeetCode

LeetCode 961 - N-repeated Element in Size 2N Array ( JavaScript )

besforyou999 2021. 12. 5. 19:13

 

안녕하세요 besforyou입니다

 

이번 글은 LeetCode 961 - N repeated Element in Size 2N Array 문제 풀이입니다

 


문제 풀이

 

Map을 이용한 풀이와 배열을 이용한 풀이가 있습니다.

 

 

1. Map을 이용한 풀이

Map을 만들어서 각 숫자를 key, nums 배열에 존재하는 각각 숫자의 개수를 value로 하는 key-value pair를 map에 저장합니다.

반복문을 통해서 배열에 존재하는 특정 숫자의 개수가 n ( nums.length / 2 ) 과 동일하다면 해당 숫자를 반환합니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// map
var repeatedNTimes = function(nums) {
 
    const map = {};
 
    let n = nums.length / 2;
 
    for (const num of nums) {
        if (map[num] == null) map[num] = 1;
        else {
            map[num] += 1;
            if (map[num] == n) return num;
        }
    }
 
};
 
cs

 

 

2. Array을 이용한 풀이

문제 제약사항중에 숫자의 범위가 0 이상, 10000이하로 주어졌으므로 길이가 10001인 배열을 생성하여 nums 안의 각 숫자의 개수를 셉니다. 개수를 세다가 n과 동일한 출현횟수를 가진 숫자를 찾으면 바로 반환합니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// array
 
var repeatedNTimes = function(nums) {
 
    let n = nums.length / 2;
 
    let arr = new Array(10001).fill(0);
 
    for (const num of nums) {
        arr[num] += 1;
        if (arr[num] == n) return num;
    }
};
 
cs