ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (못풀었)항해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;
    }

    댓글

Designed by Tistory.