본문 바로가기
알고리즘 & 코딩 테스트/[Java]프로그래머스

[프로그래머스_Java] Lv.0 문자 개수 세기

by heosj 2024. 1. 18.

문제 설명

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


풀이

class Solution {
    public int[] solution(String my_string) {
        int[] answer = new int[52];
        char[] charArr = my_string.toCharArray(); // 1
        
        for (char ch : charArr) {
            if ('A' <= ch && ch <= 'Z') { // 2
                answer[ch - 'A']++;
            } else if ('a' <= ch && ch <= 'z') { // 3
                answer[ch -'a' + 26]++; 
            }
        }
        return answer;
    }
}
  1. 문자열을 문자 배열로 변환 
  2. 배열을 순회하며 대문자인 경우, answer[ch - 'A']++;를 통해 배열 answer에서 해당 알파벳에 대한 카운트 증가
  3. 배열을 순회하며 소문자인 경우, answer[ch - 'a' + 26]++;를 통해 배열 answer에서 해당 알파벳에 대한 카운트 증가
  4. 대문자는 0~25인덱스, 소문자는 26~52 인덱스에 저장

 

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr