문제


입력 및 출력


풀이

import java.io.*;
import java.util.*;

class Main {
    public static void main(String args[]) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // 아스키코드 97~122 => a~z

        // 단어S
        char[] S = br.readLine().toCharArray();

        // 단어에 포함되어있는 알파벳 개수를 출력할 배열
        int[] alphabet = new int[26];

        // 입력받은 단어를 쪼개 알파벳 별 인덱스의 위치에 1을 증가시킨다.
        for (int i = 0; i < S.length; i++) {
            alphabet[(int) S[i] - 97] += 1;
        }

        // 결과문 출력
        for (int i = 0; i < alphabet.length; i++) {
            System.out.print(alphabet[i] + " ");
        }
    }
}

결과 및 해결방법

[결과]

[정리]

해결방법

  • 아스키코드에 대한 이해만 있다면 쉽게 풀 수 있는 문제였다. 아스키코드의 a~z값은 97~122로 이루어져있다.

    따라서 입력받은 문자열을 하나의 알파벳으로 변경하기 위해 toCharArray를 사용하여 배열S에 담아주었고, 알파벳의 개수는 총 26개로 배열을 선언하였다.

    S의 길이만큼 반복문을 수행하며, 알파벳에서 아스키코드의 a값을 뺀 인덱스에 1을 증가시켜주었다.

profile
"계획에 따르기보다 변화에 대응하기를"

0개의 댓글