문제 풀이/Baekjoon Online Judge

[Baekjoon Online Judge] 10808번: 알파벳 개수

hyeonic 2021. 1. 8. 19:53
 

10808번: 알파벳 개수

단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

www.acmicpc.net

 

import java.io.*;
import java.util.HashMap;
import java.util.Map;

public class Baekjoon10808 {

    public static void main(String[] args) throws IOException {

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
        String alphabet = "abcdefghijklmnopqrstuvwxyz";

        String word = bufferedReader.readLine();
        Map<Character, Integer> alphabetMap = new HashMap<>();

        for (int i = 0; i < word.length(); i++) {
            Character character = word.charAt(i);
            if (alphabetMap.containsKey(character)) {
                alphabetMap.put(character, alphabetMap.get(character) + 1);
            } else {
                alphabetMap.put(character, 1);
            }
        }

        for (int i = 0; i < alphabet.length(); i++) {
            Character character = alphabet.charAt(i);

            if (alphabetMap.containsKey(character)) {
                bufferedWriter.write(alphabetMap.get(character) + " ");
            } else {
                bufferedWriter.write( "0 ");
            }
        }

        bufferedWriter.flush();
        bufferedReader.close();
        bufferedWriter.close();
    }
}

 

 Map을 활용하여 알파벳을 key로 활용하고, 해당 알파벳의 value는 단어에 포함된 개수이다. Map에 없다면 0을 출력하도록 구현하였다.