자바스크립트 객체 - 가장 많이(자주) 쓰인 문자(알파벳) 찾기 문제

iberis2·2022년 12월 30일
0

알고리즘 문제

목록 보기
2/27

문제

문자열을 입력받아 가장 많이 반복되는 문자(letter)를 리턴해야 합니다.

입출력 예시

let output = mostFrequentCharacter('apples not oranges');
console.log(output); // --> 'p'

output = mostFrequentCharacter('hello world');
console.log(output); // --> 'l'

output = mostFrequentCharacter('   ');
console.log(output); // --> ''

output = mostFrequentCharacter('');
console.log(output); // --> ''

output = mostFrequentCharacter('abba');
console.log(output); // --> 'b'

입력

인자 1 : str

string 타입의 공백이 있는 문장

출력

string 타입을 리턴해야 합니다.

주의사항

띄어쓰기는 제외합니다.
가장 많이 반복되는 문자가 다수일 경우, 가장 먼저 해당 횟수에 도달한 문자를 리턴해야 합니다.
빈 문자열을 입력받은 경우, 빈 문자열을 리턴해야 합니다.

풀이

function mostFrequentCharacter(str) {
  let obj = {mostCount: 0, mostFrequent: ''}; // 비교 대상을 만들어 놓고, 
  
  for(let i = 0; i < str.length; i++){
    if(str[i] === ' '){    	
      continue;      // break -> 공백나오면 반복문 종료
	}				 // continue -> 이번 횟수만 건너 뛴다.
    
    if(!obj[str[i]]){
      obj[str[i]] = 1;
    }
    obj[str[i]]++;

    if(obj[str[i]] > obj['mostCount']){
      obj['mostCount'] = obj[str[i]]; // 비교 대상보다 커지면 교체
      obj['mostFrequent'] = str[i];
    }
  }
  return obj['mostFrequent'];
}

profile
React, Next.js, TypeScript 로 개발 중인 프론트엔드 개발자

0개의 댓글