[백준][10808번] 알파벳 개수

Updated:

문제 URLPermalink

https://www.acmicpc.net/problem/10808

나의 풀이 (1)Permalink

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(System.out));
        Scanner sc = new Scanner(System.in);
        Map<Character, Integer> m = new HashMap<>(); // 빈도수
        String str = sc.nextLine();

        for(int i=0; i<str.length(); i++){
            char ch = str.charAt(i);
            m.put(ch, m.getOrDefault(ch, 0)+1);
        }

        for(char i='a'; i<='z'; i++){
            int f = m.getOrDefault(i,0);
            bf.write(f+" ");
        }
        bf.flush();
    }
}

나의 풀이 (2)Permalink

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(System.out));
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        int[] f = new int[26]; //빈도수

        for(char ch : str.toCharArray())
            f[ch-'a']++;

        for(int i=0; i<f.length; i++)
            bf.write(f[i]+" ");

        bf.flush();
    }
}

느낀점Permalink

난이도 쉬운문제였다.

빈도수를 측정하는 방법으로 두가지 풀이로 풀어보았다. 한가지는 map을 사용했고 나머지는 배열을 이용했다.

dg 위 - map 아래 - 배열

실행시간은 비슷하다.

Leave a comment