코딩테스트
문자 개수 세기, 프로그래머스 코딩테스트 JAVA
daeyun대윤
2024. 2. 28. 07:01
문자 개수 세기 JAVA
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/181902
문제 설명 : 알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때, my_string에서 'A'의 개수, my_string에서 'B'의 개수,..., my_string에서 'Z'의 개수, my_string에서 'a'의 개수, my_string에서 'b'의 개수,..., my_string에서 'z'의 개수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요.
class Solution {
public int[] solution(String my_string) {
int[] answer = new int[52];
char[] ca = my_string.toCharArray();
for(int i=0; i<ca.length; i++){
if(Character.isUpperCase(ca[i])){
answer[(int)ca[i]-'A']++;
}else{
answer[(int)ca[i]-'a'+26]++;
}
}
return answer;
}
}
처음에 접근했을 때는. ++ 연산자 이 부분을 생각 못하고 answer[(int)ca[i]-'A'] = 1; 이렇게 했다보니.. answer 배열 인덱스에 맞게 1이 들어가긴 했으나... 알파벳 별로 카운트는 못하는 상황이었다. chat GPT에 물어봤더니 ++ 연산자 쓰라고 알려줌.. 오....! ㅎㅎㅎ 쉬운 것 같으나.. 생각해내기 매우 어려웠음..
아스키코드에서 대문자 A는 65, 소문자 a는 97이고, 이 두 숫자간의 차이가 26이라서 소문자 일때는 'a'에 다시 +26을 해주었다.
728x90
300x250