-
프로그래머스 - 최빈값 구하기 (이해못함)Coding Test/프로그래머스 Lv.0 2023. 5. 31. 20:33
function solution(array) { let m = new Map(); // {k1 - v1}, {k2 - v2}, {...} // // STEP 1. 맵에 저장 // m.set('a', 'b'); // 'a'라는 키로 'b'를 저장 (key - value) // m.set('c', 'd'); // 'c'라는 키로 'd'를 저장 array.forEach((v) => { // [1] if (m.has(v)) { m.set(v, m.get(v) + 1); // 2, 3, 4, ... } else { m.set(v, 1); // 1이라는 숫자가 count = 1. 최빈값은 결국 특정 숫자의 count가 가장 큰 숫자 } }); let tmp = 0; // 빈도수 let answer = 0; // 답. 가장 많이 발견된 숫자를 저장하고 싶은 것 m.forEach((v, k) => { // value가 있고요. key가 있어요. // 1번째 턴: v = 1, k = 1 // 2번째 턴: v = 1, k = 2 -> answer = -1, tmp = 1 // 1번째 턴: v = 3, k = 3 if (v > tmp) { // 빈도수 비교 조건 (3 > 1) answer = k; // answer = -1 -> 3 tmp = v; // tmp = 1 -> 3 } else if (v == tmp) { answer = -1; // 여길로 갑니다. } }); return answer; // 3 } console.log(solution([1, 2, 3, 3, 3])); // 1 - 1, 2 - 1, 3 - 3
STEP 1. 맵에 저장
m.set('a', 'b'); // 'a'라는 키로 'b'를 저장 (key - value)
m.set('c', 'd'); // 'c'라는 키로 'd'를 저장'Coding Test > 프로그래머스 Lv.0' 카테고리의 다른 글
프로그래머스 - 아이스 아메리카노 (0) 2023.06.01 프로그래머스 - 옷가게 할인받기 (0) 2023.06.01 프로그래머스 - 피자 나눠먹기 (3) (어려움) (0) 2023.05.31 프로그래머스 - 피자 나눠먹기(2) (0) 2023.05.31 프로그래머스 - 피자 나눠먹기 (1) (1) 2023.05.31