고리타분한 개발자
Max Char 본문
목적
주어진 문자열에서 가장 많이 사용된 단어를 반환하기.
example
maxChar('abcccccccd') === 'c'
maxChar('apple 1231111') === '1'
1.
일단 우리는 주어진 문자열을 쪼개서 각 문자가 몇번 사용 되었는지 확인할 수 있어야 한다.
const string = 'Hello World!'
const chars = {}
for (let char of string) {
console.log(chars) // 하단 주석처리
if (!chars[char]) {
chars[char] = 1
} else {
chars[char]++
}
}
// {}
// {H: 1}
// {H: 1, e: 1}
// {H: 1, e: 1, l: 1 }
// {H: 1, e: 1, l: 2 }
// {H: 1, e: 1, l: 2, o: 1 }
// ...
// {H: 1, e: 1, l: 3, o: 2, " ": 1, W: 1, r: 1, d: 1, !: 1}
위와같은 방법으로 문자열에서 각 문자가 얼마나 사용 되었는지 알아보았습니다. 이제는 가장 많이 사용된 문자를 반환할 차례입니다.
function maxChar(str) {
const charMap = {}
let max = 0
let maxChar = ''
for (let char of str) {
if (charMap[char]) {
charMap[char]++
} else {
charMap[char] = 1
}
}
for (let char in charMap) {
if (charMap[char] > max) {
max = charMap[char]
maxChar = char
}
}
return maxChar
}
만약 많이 사용된 문자가 중복으로 발생할 경우 가장 앞에 나온 글자가 반환되어 집니다.
예를들어 문자열이 'Heelloo'와 같은 경우 'e'가 반환되어집니다.
'JavaScript > Algorithm' 카테고리의 다른 글
Fizz Buzz (0) | 2018.05.12 |
---|---|
Integer Reversal (0) | 2018.05.12 |
Paldinromes (0) | 2018.05.12 |
SentenceCapitalization (0) | 2018.05.12 |
String Reversal (0) | 2018.05.12 |
Comments