inblog logo
|
silver
    알고리즘문제풀기

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

    silver's avatar
    silver
    May 02, 2025
    [알고리즘문제풀기] 문자 개수 세기
    Contents
    문제내가 작성한 정답다른 사람들의 정답

    문제

    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/181902

    내가 작성한 정답

    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

    RSS·Powered by Inblog