[알고리즘문제풀기] 문자 개수 세기

silver's avatar
May 02, 2025
[알고리즘문제풀기] 문자 개수 세기

문제

내가 작성한 정답

class Solution { public int[] solution(String my_string) { int[] answer = new int[52]; char[] al = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; for(int i=0; i<52; i++){ for(int j=0; j<my_string.length(); j++){ if(my_string.charAt(j)==al[i]) answer[i]++; } } return answer; } }

다른 사람들의 정답

:소문자일 경우 대문자의 개수인 26을 더하고 ‘a’를 빼서 적용
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; } }
소문자일 경우 -6을 하면 인덱스가 나옴
class Solution { public int[] solution(String my_string) { int[] answer = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; for(char ch: my_string.toCharArray()) { answer[ch - 'A' - (Character.isLowerCase(ch)?6:0)]++; } return answer; } }
Share article

silver