알고리즘 공부...공......공
[백준: 알고리즘_Java] 10808번_알파벳 개수
MININI
2022. 1. 14. 16:12
<문제>
<풀이>
이걸 첨에 봤을땐.. 알파벳마다 일일이 조건문을 넣어서 해야되나 잠깐! 아주 잠깐!!! 고민했는데
그건 너무 아닌 것 같아서 생각해보니.. 아스키코드가 떠올랐다.
매우매우매우매우~~쉬움.
ASCII 코드 표
위의 표를 보면 a~z까지의 문자는 10진수로 각각 97~122이므로,
이를 이용해 반복문으로 개수를 확인해 주면 된다.
count배열의 인덱스 0~25까지를 a~z로 생각하여,
입력값의 각 문자의 아스키코드에서 97을 뺀 값을 인덱스로 설정하여 해당 값에 +1 해준다.
import java.io.*;
import java.util.Arrays;
public class Alphabet_count {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] input = br.readLine().toCharArray();
int[] count = new int[26];
//알파벳 아스키코드 : a-97, b-98,,,,
for(int i = 0; i < input.length; i++) {
int ascii = (int)input[i];
count[ascii-97] ++;
}
System.out.println(Arrays.toString(count).replaceAll("[\\]\\[\\,]",""));
}
}