알고리즘/백준

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

DevelopJJong 2023. 1. 15. 03:23

문제

문제 링크 : https://www.acmicpc.net/problem/10820


수도코드 작성

스캔을 받고 String -> char[] 으로 바꿔준 다음 배열을 for문으로 소문자인지 대문자인지 숫자인지 띄어쓰기인지 각각 확인하고 각각 카운팅 해주면 될 것 같다.

 


작성한 코드

import java.util.Scanner;

public class Main {
    public static void main(String [] args) {
        Scanner sc = new Scanner(System.in);

        while(sc.hasNextLine()) { // 들어오는 게 String 이면 while문 작동
            String m = sc.nextLine(); // 입력
            char[] ma = new char[m.length()];
            int count0 = 0; // 소문자 카운팅
            int count1 = 0; // 대문자 카운팅
            int count2 = 0; // 숫자 카운팅
            int count3 = 0; // 띄어쓰기 카운팅

            for(int i=0; i<m.length(); i++){
                ma[i] = m.charAt(i);
            }
            for(int i=0; i<ma.length; i++) {
                if(Character.isLowerCase(ma[i])){
                    count0++;
                }else if(Character.isUpperCase(ma[i])){
                    count1++;
                }else if(Character.isDigit(ma[i])){
                    count2++;
                }else{
                    count3++;
                }
            }
            System.out.println(count0 + " " + count1 + " " + count2 + " " + count3);
        }
    }
}

보완할 점 / 헷갈린 점

Character 관련 된 메소드가 있다는 것을 몰랐다.

이것 관련해서 블로깅을 하면서 공부를 해야겠다!!