Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Today
Total
관리 메뉴

고리타분한 개발자

Max Char 본문

JavaScript/Algorithm

Max Char

sunlee334 2018. 5. 12. 00:57

목적

주어진 문자열에서 가장 많이 사용된 단어를 반환하기.

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