소소한 것들에 대한 기록

[Javascript] 가장 많이 들어있는 숫자 출력 본문

코딩테스트(JS)

[Javascript] 가장 많이 들어있는 숫자 출력

소소한 김로그__ 2023. 2. 23. 21:25





[문제 설명]
1. 길이가 0초과 100 이하의 숫자로 구성되어있는 문자열 s

2. s 중 가장 많이 등장하는 0~9사이의 숫자 출력.

3. 동점인 경우 가장 작은 수 반환.


[풀이 과정]

function solution(s) {
    const obj = {}; // 빈 object 생성
    for (i=0; i<s.length; i++){
    (s[i] in obj) // s안에 있는 숫자를 앞에서부터 하나씩 obj에 들어있는지 비교(key)
    ? obj[s[i]] += 1 // 비교하려는 숫자가 obj의 key 중 일치하는 것이 있으면 value를 1만큼 늘리기
    : obj[s[i]] =1 // 비교하려는 숫자가 obj의 key 중 일치하는 것이 없으면 value를 1로 생성
  } 
   let newArr // 빈 array 생성
   = Object.keys(obj) // Object.key로 key 배열 생성
   .sort((a,b) => {return obj[b] - obj[a]}) // .sort()로 정렬. 오름차순 정렬(a<b)
 return parseInt(newArr[0]) // newArr[0]은 string이기 때문에 parseInt로 숫자로 변환 후 리턴
}