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

풀이방법


이 문제는 예전에 풀어봤지만 당연하게 기억이 나지 않아서 다시 풀어봤습니다. 이 문제는 알파벳의 개수가 26개이므로 size가 26인 배열을 만들고 모든 배열 요소를 0으로 초기화 해주었습니다. 그리고 input 문자열을 입력받고 그 문자열의 각 요소에 charAt() 메소드를 통하여 접근하고 아스키 코드 표를 이용하여 A에 해당하는 값인 97을 빼준 값을 index로 정하고 index에 해당하는 배열 요소의 값을 증가시켜줌으로써 계산을 했습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package language;

import java.io.*;

public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

int[] checkArr = new int[26];

String input = bf.readLine();

for(int i=0;i<26;i++)
checkArr[i]=0;

for(int i=0;i<input.length();i++) {
int index = input.charAt(i) - 97;
checkArr[index]++;
}

for(int i=0;i<26;i++){
System.out.print(checkArr[i]+" ");
}
}
}