1. 단순하게 문자열 처리를 할 수 있으면 정답이다.

import java.util.*;
import java.io.*;
/**
* https://www.acmicpc.net/problem/10820
* BOJ 백준온라인져지 10820 문자열 분석 풀이
*/
public class Main {
private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
while ((str = br.readLine()) != null) {
int a = 0;
int b = 0;
int c = 0;
int d = 0;
for (int i = 0; i < str.length(); i++) {
char t = str.charAt(i);
if (t <= 'Z' && t >= 'A') b++;
else if (t <= 'z' && t >= 'a') a++;
else if (t <= '9' && t >= '0') c++;
else d++;
}
bw.write(a + " " + b + " " + c + " " + d + "\n");
}
bw.flush();
}
}
view raw Main.java hosted with ❤ by GitHub

문제

문자열 N개가 주어진다. 이 때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.

각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.

입력

첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.

출력

첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.

예제 입력 1 

This is String
SPACE    1    SPACE
 S a M p L e I n P u T     
0L1A2S3T4L5I6N7E8

예제 출력 1 

10 2 0 2
0 10 1 8
5 6 0 16
0 8 9 0

힌트


+ Recent posts