본문 바로가기
Coding Test/Programmers

[Programmers Test] (2회차 코딩테스트) No 3. MostAppearNumber

by song.ift 2023. 1. 27.
[문제 설명]
 숫자로 이루어진 문자열 s가 있습니다. 이 문자열에서 가장 많이 등장하는 수를 출력하는 함수, solution을 완성해주세요.
 예를 들어, s가 '104001100'로 주어질 때, 가장 많이 등장하는 수는 0입니다.


[제한 사항]
 - 등장하는 수가 같은 경우, 작은 수를 출력합니다.


[입력 형식]
 - s는 길이가 1 이상 100 이하의 문자열입니다.
 - s는 숫자로 구성됩니다.


[출력 형식]
 - 가장 많이 등장하는 수를 출력합니다.

 

function solution(n) {
    let val = 0,
        maxCnt = 0,
        cnt;

    const t1 = function () {
        val = n[0];
        maxCnt = cnt;
    };
    const t2 = () => (val = cnt == maxCnt ? Math.min(n[0], val) : val);

    while (n.length) {
        cnt = n.split(n[0]).length - 1;
        (cnt > maxCnt ? t1 : t2)();
        n = n.replaceAll(n[0], "");
    }
    return parseInt(val);
}

댓글