๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ๊ตฌ์ฑํ๋ ๊ฐ ๋ฌธ์(letter)๋ฅผ ํค๋ก ๊ฐ๋ ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ์์ค.
let output = ๊ฐ ๋ฌธ์์ ๋ฌธ์์ ๊ฐฏ์๋ฅผ ๊ฐ๋ ๊ฐ์ฒด('hello'); console.log(output) // --> {h: 1, e: 1, l: 2, o: 1};
function ๊ฐ ๋ฌธ์์ ๋ฌธ์์ ๊ฐฏ์๋ฅผ ๊ฐ๋ ๊ฐ์ฒด(str) { //๊ฐ์ฒด๋ฅผ ๋ด์ ๋ณ์ ์ง์ let obj = {}; //str์ ๊ธธ์ด๊น์ง ์ํ for(let i = 0; i < str.length; i++){ //๋ง์ฝ ๊ฐ ๊ฐ์ฒด ์์ ๋ด์ฉ์ด ์์ ๊ฒฝ์ฐ if(obj[str[i]] === undefined){ //ํค๋ str[i]๊ฐ ๋๊ณ ๊ฐ์ 1๋ก ์ง์ obj[str[i]] = 1 } //ํค๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ๊ฐ์ ํ๋์ฉ ์ฆ๊ฐ else{ obj[str[i]]++ } } return obj; }
๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ๊ฐ์ฅ ๋ง์ด ๋ฐ๋ณต๋๋ ๋ฌธ์(letter)๋ฅผ ๋ฆฌํดํ์์ค.
let output = mostFrequentCharacter('apples not oranges'); console.log(output); // --> 'p'
function mostFrequentCharacter(str) { // ๋ฌธ์์ด์ ๊ณต๋ฐฑ์์ด ๋ชจ๋ ๋ถํ๋ค let newStr = str.replace(/(\s*)/g, ""); // ๋น ๊ฐ์ฒด ์์ฑ let obj = {}; // ๋ฌธ์์ ๋ฐ๋ณต ํ์๋ฅผ ์นด์ดํฐ์ ๋ด๊ณ ์ฒดํฌ์คํธ๋ง์ ํด๋น ๋ฌธ์์ด์ ๋ด๋๋ค let count = 0, checkStr = ''; for (let i = 0; i < newStr.length; i++) { //๊ฐ์ฒด ์์ i๋ฒ์งธ์ ํค๊ฐ ์์ ๊ฒฝ์ฐ if (obj[newStr[i]] === undefined) { // i๋ฒ์งธ ํค์ ๊ฐ์ 1๋ก ์ง์ obj[newStr[i]] = 1 // i๋ฒ์งธ ํค์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ 1์ฉ ์ฆ๊ฐ }else{ obj[newStr[i]]++; } // i๋ฒ์งธํค๊ฐ 0์ธ ์นด์ดํธ๋ณด๋ค ๋์ ๊ฒฝ์ฐ // ์ฌ๊ธฐ์ ๋ถํฐ ๊ฐ ๋ฌธ์์ด์ ๋์๋น๊ต if (obj[newStr[i]] > count) { // ์นด์ดํฐ์ i๋ฒ์งธ ํค์ ๊ฐ์ ํ ๋น count = obj[newStr[i]]; // ์ฒดํฌ์คํธ๋ง์ i๋ฒ์งธ์ ๋ฌธ์์ด ํ ๋น checkStr = newStr[i]; } } return checkStr; }