본문 바로가기
백준

[백준] 10808번 : 알파벳 개수 – JAVA [자바]

by Hongwoo 2022. 8. 16.
반응형

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

 

10808번: 알파벳 개수

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 10808번 알파벳 개수는 브론즈 4 난이도의 구현 및 문자열 문제이다. 이 문제에서는 알파벳 소문자로만 이루어진 단어가 1개 주어진다. 이때 이 단어에 포함되어 있는 알파벳의 개수를 각각 출력하면 된다.

 

이 문제는 아스키코드의 값을 이용해서 풀 수 있다. 우선 a의 아스키코드 값은 97이다. 이 말은 단어에 있는 char들을 볼 때 a는 97, b는 98, c는 99 등이라는 것이다. 

 

따라서, 크기가 26인 int형 배열 arr을 선언해주고 각 char를 볼 때 arr [char - 97]++를 해주면 알파벳의 개수를 셀 수 있다는 것이다.

 

자세한 코드는 아래에 있다.

 


  • 코드

 

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int[] arr = new int[26];  //알파벳 개수를 저장하는 배열
        String s = br.readLine();  //단어 입력받기
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            arr[c - 97]++;  //개수 1씩 늘려주기
        }
        for (int i = 0; i < 26; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

 

 

반응형

댓글