백준 - 10808번 - 알파벳 개수

이상훈·2023년 4월 16일
0
post-custom-banner

10808번

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

public class Main {

	static int[] arr = new int[26];

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

		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		String num = bf.readLine();

		solve(num);
		for (int i = 0; i<arr.length; i++) {
			sb.append(arr[i]).append(" ");
		}

		System.out.print(sb);
	}

	private static int[] solve(String text) {

		for (int i = 0; i<arr.length; i++) {
			arr[i] = 0;
		}
		for (int i = 0; i<text.length(); i++) {
			arr[text.charAt(i)-'a']++;
		}

		return arr;
	}

}

풀이


문자열을 받고 철자마다 a~z까지 몇개 있는지 출력하는 문제이다.

문자열 한개 단위에 접근하기 위해 .charAt()을 사용했다.

text.charAt(i)-'a' 

같이 뒤에 -'a'를 해주면 문자를 아스키코드에 의해서 숫자로 바꿔준다. 이때 a는 97를 의미한다. 그래서 만약 문자열 한개가 a라면 0이 나올것이다.

이렇게 -'a'를 해주어 인덱스에 적용시켜 만약 알파벳이 있다면 1씩 증가시켜줬다.

post-custom-banner

0개의 댓글