일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Javascript
- java
- network
- frontend
- Redux
- Algorithm
- db
- 안드로이드
- LeetCode
- Graph
- vscode
- 프로그래머스
- Python
- 알고리즘
- 자바
- DFS
- BFS
- DP
- 백준
- react
- VIM
- 리트코드
- 그레이들
- 다이나믹 프로그래밍
- git
- 동적 계획법
- TypeScript
- Data Structure
- CS
- Database
Archives
- Today
- Total
늘 겸손하게
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 |
'코딩 문제 > LeetCode' 카테고리의 다른 글
LeetCode 136 - Single Number ( JavaScript ) (0) | 2021.12.03 |
---|---|
LeetCode 451 - Sort Characters By Frequency ( JavaScript ) (0) | 2021.11.27 |
LeetCode 654 - Maximum Binary Tree ( JavaScript ) (0) | 2021.11.21 |
LeetCode 1525 - Number of Good Ways to Split a String ( Java ) (0) | 2021.11.20 |
LeetCode 1704 - Determine if String Halves Are Alike ( Java ) (0) | 2021.11.19 |