116. 문자 개수 세기

박은서's avatar
Mar 30, 2026
116. 문자 개수 세기
2026.03.30(MON)_116일차

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. 풀이

class Solution { public int[] solution(String my_string) { String[] split = my_string.split(""); int[] answer = new int[52]; for (int i = 0; i < split.length; i++) { for (int j = 0; j < 26; j++) { String a = String.valueOf((char) (j+65)); if (split[i].equals(a)) answer[j]++; } } for (int i = 0; i < split.length; i++) { for (int j = 0; j < 26; j++) { String a = String.valueOf((char) (j+97)); if (split[i].equals(a)) answer[j+26]++; } } return answer; } }

3. 다른 사람의 풀이

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') answer[c - 'a' + 26]++; else answer[c - 'A']++; } return answer; } }
 
Share article