알고리즘/[ Baekjoon ]

[ BOJ ][JAVA][10820] 문자열 분석

kim.svadoz 2021. 4. 28. 19:42
반응형

www.acmicpc.net/problem/10820

 

10820번: 문자열 분석

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

www.acmicpc.net

시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 14828 6170 5129 42.989%

문제

문자열 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

코드

import java.io.*;

public class p10820 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = "";
        while ((s = br.readLine()) != null) {
            int[] res = new int[4];

            for(int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                if(c >= 'A' && c <= 'Z') { // 대문자
                    res[1]++;
                } else if (c >= 'a' && c <= 'z') { // 소문자
                    res[0]++;
                } else if (c >= '0' && c <= '9') { // 숫자
                    res[2]++;
                } else {
                    res[3]++;
                }
            }

            for(int i = 0; i < 4; i++) {
                System.out.print(res[i]+" ");
            }
        }
    }
}
반응형

'알고리즘 > [ Baekjoon ]' 카테고리의 다른 글

[ BOJ ][JAVA][10824] 네 수  (0) 2021.04.29
[ BOJ ][JAVA][5557] 1학년  (0) 2021.04.29
[ BOJ ][JAVA][10819] 차이를 최대로  (0) 2021.04.28
[ BOJ ][JAVA][10816] 숫자 카드 2  (0) 2021.04.28
[ BOJ ][JAVA][10815] 숫자 카드  (0) 2021.04.28