문제
내가 작성한 정답
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