본문 바로가기
백준

[백준] 10820번 : 문자열 분석 – JAVA [자바]

by Hongwoo 2023. 2. 26.
반응형

https://www.acmicpc.net/problem/10820

 

10820번: 문자열 분석

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

www.acmicpc.net

 

 


  • 문제

 

 


  • 문제 풀이

백준 10820번 문자열 분석은 브론즈 2 난이도의 구현 및 문자열 문제이다. 이 문제에서는 문자열 N개가 주어지고 각 문자열마다 소문자, 대문자, 숫자, 그리고 공백의 개수를 출력하면 된다.

 

우선 이 문제에서는 입력의 개수가 주어지지 않는다. 따라서, 문자열 입력을 받을 때 다음과 같이 하면 된다.

 

String s;
while ((s = br.readLine()) != null) {
	//코드
}

 

위와 같이 코드를 작성하면 입력이 종료되면 이 while-loop이 종료된다. 

 

우선 int형 변수 small, capital, number, 그리고 space를 선언해 준다. small은 소문자의 개수, capital은 대문자의 개수, number는 숫자의 개수, 그리고 space는 공백의 개수다.

 

이제 각 문자열마다 iterate 하면서 각 인덱스에 있는 character가 어떤 건지 확인한 다음에 맞는 거의 개수를 1씩 증가시켜 주고 문자열이 끝나면 그 개수를 출력해 주면 된다.

 

각 character가 소문자인지, 대문자인지, 숫자인지 아니면 공백인지는 다음과 같은 코드로 확인할 수 있다.

 

char c;  //Character

if (c == ' ') space++;  //공백인지 확인
if (Character.isUpperCase(c)) capital++;  //대문자인지 확인
if (Character.isLowerCase(c)) small++;  //소문자인지 확인
if (Character.isDigit(c)) number++;  //숫자인지 확인

 

자세한 코드는 아래에 있는 코드를 참고하면 되겠다.

 


  • 코드

 

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));
        StringBuffer sb = new StringBuffer();
        String s;
        while ((s = br.readLine()) != null) {
            int small = 0;  //소문자 개수
            int capital = 0;   //대문자 개수
            int number = 0;  //숫자 개수
            int space = 0;  //공백 개수
            for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                if (c == ' ') space++;
                if (Character.isUpperCase(c)) capital++;
                if (Character.isLowerCase(c)) small++;
                if (Character.isDigit(c)) number++;
            }
            sb.append(small + " " + capital + " " + number + " " + space + "\n");
        }
        System.out.print(sb);
    }
}

 

 

반응형

댓글