Header Banner
GG Logo

Future Engineering

기술의 최전선을 기록합니다.

기술 자료/Algorithm/프로그래머스 문자 개수 세기 문제 풀이

프로그래머스 문자 개수 세기 문제 풀이

Algorithm5개월 전
function solution(my_string) {
    var answer = new Array(52).fill(0);
    
    for(let char of my_string) {
        const specificChar = char.charCodeAt(0);
        
        if(specificChar >= 65 && specificChar <= 90) {
            answer[specificChar -65]++;
        } else if(specificChar >= 97 && specificChar <= 122) {
            answer[specificChar - 97 + 26]++;
        }
    }
    
    return answer;
}

문제 설명 및 핵심 포인트

주어진 문자열에서 알파벳의 등장 횟수를 세는 문제입니다.

대소문자를 구분해서 각각 몇 번 나왔는지, 총 52개의 빈도를 기록하는 배열을 반환해야 합니다.

 

✅ 코드 설명

1. 배열 초기화

new Array(52).fill(0)
  • 대문자 26개 + 소문자 26개 = 총 52칸짜리 배열을 0으로 초기화합니다.

2. 문자 순회

for (let char of my_string)
  • 문자열의 각 문자를 하나씩 순회하면서 처리합니다.

3. 유니코드(charCode) 활용

const code = char.charCodeAt(0)
  • 문자를 유니코드 값으로 변환합니다.

  • 예를 들어 "C" → 67, "a" → 97

4. 대소문자 구분하여 인덱스 계산

  • 대문자 A~Z: 유니코드 65~90 (배열 인덱스는 code - 65)

  • 소문자 a~z: 유니코드 97~122 (배열 인덱스는 code - 97 + 26)
    (소문자는 배열 26번부터)

 

🎯 개념 정리

이 문제의 핵심은 아래와 같은 기초적인 CS 개념을 얼마나 잘 이해하고 있는지를 묻습니다.

  1. 배열 생성 및 인덱스 연산

  2. 문자의 유니코드(charCode) 이해와 변환

  3. 조건문을 통한 대소문자 분기 처리

  4. 배열의 특정 인덱스에 접근해 값을 증가시키는 로직