Java/Java 알고리즘

백준 10808번 알파벳 개수 구현해보기

kimc 2021. 12. 29. 00:26

```

백준 10808번 알파벳 개수 구현해보기

```

이번 글을 통해 배워갈 내용

  1. 백준 10808번 풀이

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

 

10808번: 알파벳 개수

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

www.acmicpc.net

 

 

백준 10808번 알파벳 개수는

난이도 브론즈 등급의 문제로서

 

알파벳 소문자 A부터 Z 까지로 이루어진 단어가 주어지면

해당되는 소문자 a부터 z까지 각 문자의 개수를 공백과 함께 출력해주면 되는 문제입니다.

 

예를 들어

입력 codemasterkimc
출력 1 0 2 1 2 0 0 0 1 0 1 0 2 0 1 0 0 1 1 1 0 0 0 0 0 0


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


스트림을 이용해서 a부터 z까지 필터로 찾아서 각 문자마다 배열에 인덱스를 더해줍니다.

스트링 빌더로 문자열 더해서 모아준다음 출력했습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {

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

        int[] alphabetCountArr = new int[26];

        // 입력된 알파벳 만큼 배열 카운터 증가
        br.readLine().chars().filter(i->(i>='a'&&i<='z')).forEach(i -> alphabetCountArr[(char) i - 'a']++);

        // 문자열빌더 선언
        StringBuilder stringBuilder = new StringBuilder();

        // 문자열빌더에 입력된 카운터와 " " 추가
        Arrays.stream(alphabetCountArr).forEach(counter -> stringBuilder.append(counter).append(" "));

        // 마지막 값 " " 제거
        stringBuilder.setLength(stringBuilder.length() - 1);

        // 출력
        System.out.print(stringBuilder);
    }
}

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

728x90