-
(못풀었)항해3주차 자바스크립트 프로그래머스 - 최빈값 구하기항해 프로그래머스 2023. 1. 27. 00:36
다른 풀이
function solution(array) { let lookgood = array.sort((a,b) => a-b); let cnt = 0; let manyNum = -1; //최빈값 let manyCnt = 0; //최빈값 나온 횟수 let nowCnt = 0; //지금 숫자가 나온 횟수 let beforeNum = -1;//array[cnt] 이전 숫자 let sameCnt = false; while(cnt < array.length){ if(beforeNum !== array[cnt]){ nowCnt = 1; } else { nowCnt = nowCnt +1; } if(nowCnt === manyCnt){ if(manyNum !== array[cnt]){ sameCnt = true; } } if(nowCnt > manyCnt){ manyNum = array[cnt]; manyCnt = nowCnt; sameCnt = false; } beforeNum = array[cnt]; cnt = cnt +1; } if(sameCnt) return -1; return manyNum; }
function solution(array) { let m = new Map(); for (let n of array) m.set(n, (m.get(n) || 0)+1); m = [...m].sort((a,b)=>b[1]-a[1]); return m.length === 1 || m[0][1] > m[1][1] ? m[0][0] : -1; }
const solution = (array) => { const counter = array.reduce((acc, cur) => ({ ...acc, [cur]: (acc[cur] || 0) + 1 }), {}) const items = Object.keys(counter).map((key) => [ Number(key), counter[key] ]).sort((a, b) => b[1] - a[1]) if (items[0][1] === items?.[1]?.[1]) { return -1 } return items[0][0]; }
function solution(array) { var answer = 0; var arr = [...new Set(array)]; var count_arr = []; for(var i = 0; i < arr.length; i++) { var count = 0; for (var j = 0; j < array.length; j++) { if (arr[i] === array[j]) { count++; } } count_arr.push(count); } var max = Math.max(...count_arr); var j = count_arr.indexOf(max); answer = arr[j]; for(var i = 0; i<arr.length; i++) { if (count_arr[i] === max && i != j) { answer = -1; } } return answer; }
function solution(array) { const freq = {}; for (const n of array) { freq[n] = (freq[n] || 0) + 1; } const keys = Object.keys(freq); keys.sort((a,b) => freq[b] - freq[a]); const max = keys[0]; return freq[keys[0]] === freq[keys[1]] ? -1 : +max; }
function solution(array) { array.sort((a, b)=>a-b); var answer = 0; var CH = Array.from(new Set(array)); var VA = {}; for(let i of array){ if(String(i) in VA) VA[i]++; else VA[i] = 1; } let sorted = Object.entries(VA).sort((a, b) => b[1] - a[1]); answer = (sorted.length === 1) || sorted[0][1] !== sorted[1][1] ? Number(sorted[0][0]) : -1 return answer; }
function solution(array) { const mode = new Map(); array.forEach((num) => { if(mode.has(num)) { mode.set(num, mode.get(num, 1) + 1 ); } else { mode.set(num, 1); } }); const max = Math.max(...mode.values()); const answer = Array.from(mode).filter(item => item[1] === max); return (answer.length > 1) ? -1 : answer[0][0]; }
function solution(array) { if(array.length === 1) return array[0]; const obj = {}; const answer = []; array.forEach(n => { obj[n] = ++obj[n] || 1; }); for (let key in obj) { answer.push([key, obj[key]]); } answer.sort((a, b) => b[1] - a[1]) return answer[0][1] === answer[1][1] ? -1 : Number(answer[0][0]); }
function solution(array) { var answer = 0; let a = []; let temp = 0 for(let i=0; i<array.length; i++){ if(a.includes(array[i])==false){ a.push(array[i]) } } for(let i=0; i<a.length; i++){ const count = array.filter(element => a[i] == element).length if(count>temp){ temp = count answer = a[i] } else if(count == temp){ answer = -1 } } return answer; }
'항해 프로그래머스' 카테고리의 다른 글
항해3주차 자바스크립트 프로그래머스 - 피자 나눠먹기(1) (0) 2023.01.27 항해3주차 자바스크립트 프로그래머스 - 짝수는 싫어요 (0) 2023.01.27 항해3주차 자바스크립트 프로그래머스 - 중앙값 구하기 (0) 2023.01.27 항해3주차 자바스크립트 프로그래머스 - 배열 두배 만들기 (0) 2023.01.27 항해3주차 자바스크립트 프로그래머스 - 배열 뒤집기 (0) 2023.01.26