본문 바로가기
  • Adillete
【스터디노트】/▷TIL

99클럽 코테 스터디 2일차 TIL + 오늘의 학습 키워드 문자열

by 아딜렛 2025. 4. 2.

비록 지각해서 못올렸지만..

- 오늘의 학습 키워드 문자열
- 공부한 내용 본인의 언어로 정리하기
- 오늘의 회고
  - 어떤 문제가 있었고, 나는 어떤 시도를 했는지
  - 어떻게 해결했는지
  - 무엇을 새롭게 알았는지
  - 내일 학습할 것은 무엇인지

필수 해시태그: 

문제

 

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

 


수도코드

/**
 * 함수 CharacterCounter():
 *     N = 입력받은 정수 (처리할 문자열 개수)
 *
 *     반복 i = 0부터 N-1까지:
 *         str = 입력받은 문자열
 *
 *         lowercase = 0  // 소문자 카운터
 *         uppercase = 0  // 대문자 카운터
 *         digit = 0      // 숫자 카운터
 *         space = 0      // 공백 카운터
 *
 *         반복 j = 0부터 str.길이-1까지:
 *             ch = str[j]  // j번째 문자
 *
 *             만약 ch가 소문자이면:
 *                 lowercase 증가
 *             아니고 만약 ch가 대문자이면:
 *                 uppercase 증가
 *             아니고 만약 ch가 숫자이면:
 *                 digit 증가
 *             아니고 만약 ch가 공백이면:
 *                 space 증가
 *
 *         출력: lowercase, uppercase, digit, space
 */
public class CharacterCounter {
public static void main(String[] args) {
    Scanner sc= new Scanner(System.in);
      
      int N = sc.nextInt();
      
      for(int i=0; i<N-1; i++){
          String str= sc.nextLine();
          
          int lowercase=0;
          int uppercase=0;
          int digit=0;
          int space=0;
          
          for(int j=0; j<str.length; j++){
              
              Char ch = str.charAt(k);
              if(Character.isLowerCase(ch)){
                  lowercase++;
              }else if(Character.isUpperCase(ch)){
                  uppercase++;
              }else if(Character.isDigitCase(ch)){
                  digit++;
              }else if(Character.isSpace(ch)){
                  space++;
              }
          }
         System.out.println(lowercase+" " +uppercase+"  "+digit+"  "+space+"  ");
      }
      
  }
 }

 

 

--------------------------------

나의 노트

시간 복잡도는 n2 도 가능하다.
공백의 개수

boolean, " " ,1
한줄에서 빈칸을 읽는다 " " ,
if(a=1)
count++;

없으면  
return 0