⚡문제정보
해쉬를 이용한것과 이용하지 않은것의 시간복잡도가 크게 차이나는 문제입니다.
첫번째 인덱스와 일치하는 값을 지워나가면서
[없앤 쌍 , 남은 숫자]를 반환하는게 조건입니다.
0 index를 그대로 구현하려고하면 배열을 실제로 조작해야하겠지만
저는 일치하는 쌍을 지워나갈거라면 값이 홀수로 남는 경우만 남겨주고
짝수인 경우에는 없앤 쌍을 카운트해주는 걸 통해 한번의 반복으로 답을 찾는 방법을 사용했습니다.
🔍나의 풀이
var numberOfPairs = function(nums) {
let map = new Map()
let answer = 0
for(i=0; i<nums.length ;i++) {
let val = map.get(nums[i])
map.set(nums[i], (val||0) +1 )
if(map.get(nums[i]) === 2) {
answer++
map.delete(nums[i])
}
}
return [answer,map.size]
};
get 값이 2가되면 answer값을 올려주고 해당 키를 지워주었습니다.
어차피 키값이 2보다 커서 지운 키를 다시 만나더라도 새로 set해주면 되니까요
쉬운 문제였지만 빠른 런타임으로 해결해서 기분이 좋네요
반응형
'leetcode' 카테고리의 다른 글
1302. Deepest Leaves Sum (0) | 2023.04.19 |
---|---|
169. Majority Element (0) | 2023.03.07 |
2442. Count Number of Distinct Integers After Reverse Operations Javascript (0) | 2023.01.21 |
2491. Divide Players Into Teams of Equal Skill Javascript (0) | 2023.01.21 |
413. Arithmetic Slices Javascript (0) | 2023.01.17 |