문제 설명
알파벳 대소문자로만 이루어진 문자열 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];
for(int i=0; i<my_string.length(); i++) {
char c = my_string.charAt(i);
if(c >= 'A' && c <= 'Z') {
answer[c-'A']++;
} else if(c >= 'a' && c<= 'z') {
answer[26+c-'a']++;
}
}
return answer;
}
}
느낀 점
문제를 읽고 my_string.charAt(i)가 어떤 알파벳과 같을 때 해당 인덱스의 값을 증가시키려니 52개나 되는 알파벳들을 다 사용할 수 없겠다 판단됐다. 그래서 아스키코드 값을 이용하여 범위로 조건문을 짜서 해결!