[프로그래머스] 문자 개수 세기

0
post-thumbnail
post-custom-banner

❔ [문제]

알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때, my_string에서 'A'의 개수, my_string에서 'B'의 개수,..., my_string에서 'Z'의 개수, my_string에서 'a'의 개수, my_string에서 'b'의 개수,..., my_string에서 'z'의 개수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요.

  • 제한사항
    • 1 ≤ my_string의 길이 ≤ 1,000


❕ [내 풀이]

function solution(my_string) {
    const arr = new Array(26).fill().map((_, i) => String.fromCharCode(i + 65)).concat(new Array(26).fill().map((_, i) => String.fromCharCode(i + 97)));
    let answer = new Array(arr.length).fill(0);
    
    [...my_string].forEach((v) => {
        answer[arr.indexOf(v)] += 1
    })
    return answer;
}

❕❕❕ [깔끔하다고 생각된 풀이]

function solution(my_string) {
    let alp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    var answer = new Array(52).fill(0);
    for (let i = 0; i < my_string.length; i++) {
        answer[alp.indexOf(my_string[i])]++;
    }
    return answer;
}
post-custom-banner

0개의 댓글