문자열에서 가장 빈번하게 등장하는 문자를 찾아내는 과정은 매우 흥미로운 프로그래밍 문제 중 하나입니다. 이 과정을 통해 자바스크립트의 객체를 사용하여 문자의 빈도를 계산하고, 조건에 따라 다른 결과를 반환하는 방법을 배울 수 있습니다.
문자 빈도 계산하기: 문자열을 순회하면서 각 문자가 등장하는 횟수를 계산합니다. 이를 위해 객체를 사용하여 각 문자를 키로, 해당 문자가 등장하는 횟수를 값으로 저장합니다.
가장 빈번한 문자 찾기: 계산된 빈도수를 바탕으로 가장 많이 등장한 문자를 찾습니다. 이 과정에서 두 가지 상황이 발생할 수 있습니다.
동적 결과 처리: 결과적으로, 함수는 사용자의 요구에 따라 가장 빈번한 문자 하나를 반환하거나, 빈도수가 같은 모든 문자를 배열로 반환할 수 있습니다.
function mostFrequentChar(s) {
const frequency = {};
for (let char of s) {
if (frequency[char]) {
frequency[char]++;
} else {
frequency[char] = 1;
}
}
let maxCount = 0;
let resultChar = null;
for (let char in frequency) {
if (frequency[char] > maxCount) {
maxCount = frequency[char];
resultChar = char;
}
}
return resultChar;
}
강민 튜터님의 풀이
세영님 풀이계획과 로직을 가만히 보다보니, for 문을 한번만 사용하게끔 개선도 가능할 거 같은 생각이 듭니다! 혹시나 시간이 되신다면 for 문을 한번만 사용하시는 로직을 한번 도전해 보시는 것도 큰 도움이 될 것 같습니다.
function mostFrequentChar(s) {
const frequency = {};
let maxCount = 0;
let resultChar = null;
for (let char of s) {
if (frequency[char]) {
frequency[char]++;
} else {
frequency[char] = 1;
}
// 현재 문자의 빈도가 maxCount보다 크면 업데이트
if (frequency[char] > maxCount) {
maxCount = frequency[char];
resultChar = char;
}
}
return resultChar;
}