[백준] 10808번 알파벳 개수 JAVA (자바) 풀이
문제 10808번
: 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성
[입력]
: 첫째 줄에 단어 S
: 알파벳 소문자
[출력]
: 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력
[코드]
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]++;
}
for(int i=0; i<26; i++){
System.out.print(arr[i]+" ");
}
}
}
[해설]
: int arr[] = new int[26]; 출력할 알파벳 a ~ z 의 배열
: String s = br.readLine(); 첫째줄 입력받기
: for(int i=0;i<s.length();i++){
char c = s.charAt(i); 입력받은 문자들을 하나하나 뜯어보기
arr[c-97]++; 소문자 a는 97 출력할 배열이 0 부터 시작하므로 가장 첫번째 알파벳 a가 0이 되게끔
} 입력받은 s의 알파벳 (= c) 에 97을 빼주고 그것을 출력 배열 순서로 지정한다
ex) String s = aac 일 때
a = s.charAt(0) / b = s.charAt(1) / c = s.charAt(2)
arr[a-97] = a[0], arr[a-97] = a[0], arr[c-97] = a[2]
arr[0] = 2, arr[2] = 1 (중복된 입력은 ++)
출력: 2 0 1 0 0 0 0 0 0 0 ㆍㆍㆍ
: for(int i=0;i<26;i++){
System.out.print(arr[i]+" "); 전체 알파벳 27개 자리 출력 (공백표시)
}
이제 풀어보러 갈께요 :)
https://www.acmicpc.net/problem/10808
10808번: 알파벳 개수
단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.
www.acmicpc.net
* 독학으로 익히는 코딩이라 틀린 것이 있을 수 있습니다. 오류가 있다면 댓글을 통해 알려주세요. 감사합니다. *