Coplit(코플릿) - 객체 21번

김재민·2021년 5월 30일
0

function mostFrequentCharacter(str) {
    let obj = { count: 0, mostFrequent: '' };
    let arr = {}
    let bbc = str.replace(/ /g,''); 
  // 문자열의 띄어쓰기 공백을 없애기 위해서 replace함수를 사용했다.
  
    for(let i = 0; i < bbc.length; i++){
        if(arr[bbc[i]] === undefined){
           arr[bbc[i]] = 0
    	}
      arr[bbc[i]]++    
    // arr객체의 키 값들이 반복문을 돌면서 키값이 있을때 1씩 증가한다.
   
   if(arr[bbc[i]] > obj['count']){ 
     // arr[bbc[i]] 가 obj['count']보다 클때 
     // arr = { key : value} > obj { count : value }
     
       obj['count'] = arr[bbc[i]]   
     // obj의 count의 value는  arr[bbc[i]] 된다.
       obj['mostFrequent'] = bbc[i]  
     // obj의 mostFrequent value는 bbc[i]번째 문자열이 된다.
     }
  }
  return obj['mostFrequent']
  }
  console.log(mostFrequentCharacter('cccyui'))

너무 어려웠던 21번째 문제였다...
위에서 가장 이해가 가지 않았던 부분은 if문부터 였는데 console.log를 하나씩 찍어가면서 겨우 이해를 했다.

순서대로 풀어나가자면
1. 처음 c : 1 > count : 0 로 비교 했을때 조건이 맞게된다.
2. obj['count'] = arr[bbc[i]] 이기 때문에 count : 1 이 된다.
3. 그리고 obj['mostFrequent'] = bbc[i]로 mostFrequent : 'c' 가 되고
4. 반복문이 돌면서 c: 2 , c: 3 이 되고 다시 3보다 크지않은 값들은 비교하지 않고 가장 많이 들어가있던 c를 리턴하게 된다.

>Key point

1. 빈객체에 key와 value를 넣는 방법

ex) arr[bbc[i]] = value   👉  arr = { bbc : value }

2. 객체 key값과 value를 더하는 방법

ex) arr[bbc[i]]++  반복문을 돌면서 증가하게 된다.

3. 다른 객체의 key값과 value를 넣는 방법

ex) obj['count'] = arr[bbc[i]]
ex) obj['mostFrequent'] = bbc[i]

4. 비교를 할때 비교해서 큰값을 변수로 할당해주거나 객체 혹은 배열에 담고
다시 비교를 통해서 가장 크거나 작은 값을 도출해 내는것.

profile
Junior Front-end engineer

0개의 댓글