라라리라

배열의 요소를 key로, 요소의 갯수를 value로 하는 map 본문

코딩/프로그래머스

배열의 요소를 key로, 요소의 갯수를 value로 하는 map

헤실 2023. 12. 8. 11:23
[문제]
1,1,1,8,2,3,3,3,4,4,5,6,6,6,1,1,2,9,9,9 이런식으로 배열이있는데 같은 숫자가

세개가 있는 숫자만 남기고 나머지는 삭제하려는데 어떻게 하면 좋을까요??

1,1,1,8,2,3,3,3,4,4,5,6,6,6,1,1,2,9,9,9 이걸

3, 6, 9 만 남기는거에요

 

let arr = [1,1,1,8,2,3,3,3,4,4,5,6,6,6,1,1,2,9,9,9];
let map1 = new Map();

for (let i of arr) {
    if (map1.has(i)) {
        map1.set(i, map1.get(i) + 1);
    } else {    
        map1.set(i, 1);
    }
}
 

 

map.has(key) 이미 key값을 가지고있으면 true, 그렇지 않으면 false를 반환한다.
map.get(key) key값의 value값을 반환한다.

map은 중복된 key 값을 허용하지 않기 때문에, 
결과적으로 map1에는 고유한 key값 : key값의 갯수가 저장되게된다.

 

 

console.log("갯수가 3개인 값 => ")
 
for(let [key, value] of map1){
    if(value == 3) console.log(key);
}

 

그 다음, map1의 모든 요소를 for..of문으로 순회하며
value값이 3인 key를 반환하도록 하여 해결하였다.

 

Output:

갯수가 3개인 값:
3
6
9

'코딩 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 최대값과 최소값(JavaScript)  (0) 2023.12.12