⚡문제정보
정수로 이루어진 배열 nums가 주어집니다.
nums는 1번만 등장하는 숫자 혹은 2번 등장하는 숫자 두가지 패턴으로만 이루어져있는데
2번 등장한 숫자만 담은 배열을 리턴하는 문제입니다.
다만 제한조건이 O(n)으로 제한되어있습니다.
미디엄 문제 치고는 쉽게 풀 수 있네요
🔍접근방법
Map 자료구조를 이용한다.
값은 1번 혹은 2번만 등장하니까 순회하면서
카운트가 2가 되는 순간 정답 배열에 바로 push해준다.
🔍나의 풀이
var findDuplicates = function(nums) {
let map = new Map()
let answer = []
for( num of nums) {
map.set(num, (map.get(num)||0)+1 )
if(map.get(num) > 1) {
answer.push(num)
}
}
return answer
};
설명은 다음과 같습니다.
var findDuplicates = function(nums) {
let map = new Map()
// 등장횟수를 세어줄 맵을 만들어줍니다.
let answer = []
// 정답을 저장할 배열을 만들어줍니다.
for( num of nums) {
// for of 문은 순회가능한 객체에 대해 반복하는 루프를 생성해줍니다.
map.set(num, (map.get(num)||0)+1 )
// map에 숫자와 숫자 등장 횟수를 세어줍니다.
if(map.get(num) > 1) {
answer.push(num)
}
//만약 등장횟수가 1보다 크다면 answer에 num을 push합니다.
}
return answer
};
반응형
'leetcode' 카테고리의 다른 글
49. Group Anagrams 자바스크립트 (0) | 2023.01.07 |
---|---|
3. Longest Substring Without Repeating Characters 자바스크립트 (0) | 2023.01.07 |
409. Longest Palindrome 자바스크립트 (0) | 2022.12.19 |
66.plus One (0) | 2022.11.29 |
13. Roman to Integer (0) | 2022.11.28 |