문자 개수 세기

1. 문제

문제 설명
알파벳 대소문자로만 이루어진 문자열 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

입출력 예

my_string result
"Programmers" [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0]

입출력 예 설명
입출력 예 #1
예제 1번의 my_string에서 'P'가 1개, 'a'가 1개, 'e'가 1개, 'g'가 1개, 'm'이 2개, 'o'가 1개, 'r'가 3개, 's'가 1개 있으므로 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0]를 return 합니다.

2. 답안

2-1. JavaScript

아이디어

  • fromCharCode 문자열 가지고오기
  • charCodeAt()
COPY
function solution(my_string) {
  var uppercase = Array.from({ length: 26 }, (v, i) =>
    String.fromCharCode(i + 65)
  );
  var lowercase = Array.from({ length: 26 }, (v, i) =>
    String.fromCharCode(i + 97)
  );
  var answer = [];

  for (i = 0; i < uppercase.length; i++) {
    const count = [...my_string].filter((el) => el === uppercase[i]).length;
    answer.push(count);
  }

  for (i = 0; i < lowercase.length; i++) {
    const count = [...my_string].filter((el) => el === lowercase[i]).length;
    answer.push(count);
  }

  return answer;
}

  1. 프로그래머스 문제풀러가기
이전 게시물
길이에 따른 연산

© 2023 - 2024 xohxe. All Rights Reserved.