inblog logo
|
👨🏻‍💻DriedPollack's Blog
    ☕Java💡Coding Test

    [programmers] 문자 개수 세기 - Java

    알파벳 대소문자로 이루어진 문자열에서 각 알파벳의 개수를 세는 문제이다. 주어진 solution 함수는 문자열을 순회하면서 대문자와 소문자를 구분하여 각 알파벳의 개수를 세어 길이 52의 정수 배열로 반환한다.
    Jan 10, 2024
    [programmers] 문자 개수 세기 - Java

    문제 설명

    알파벳 대소문자로만 이루어진 문자열 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 합니다.

    solution.java

    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' && c <= 'Z') { answer[c - 'A']++; } else if (c >= 'a' && c <= 'z') { answer[26 + c - 'a']++; } } return answer; } }
     

    핵심 키워드

    • 배열의 문자 요소 하나에 접근해서 ‘A’와 ‘a’ 만큼의 아스키코드값을 계산해서 해당하는 인덱스의 값을 1씩 증가시킨다.
     

    결론!

    해당 문제를 풀면서 char 자료형의 구조에 대해 이해할 수 있었다.
     
    Share article

    👨🏻‍💻DriedPollack's Blog

    RSS·Powered by Inblog