- 오늘의 학습 키워드 문자열
- 공부한 내용 본인의 언어로 정리하기
- 오늘의 회고
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
- 어떻게 해결했는지
- 무엇을 새롭게 알았는지
- 내일 학습할 것은 무엇인지
필수 해시태그:
문제
문자열 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
'【스터디노트】 > ▷TIL' 카테고리의 다른 글
99클럽 코테 스터디 4일차 TIL + 오늘의 학습 키워드: 스택과 큐 (0) | 2025.04.03 |
---|---|
99클럽 코테 스터디 3일차 TIL + 오늘의 학습 키워드 문자열 (0) | 2025.04.02 |
[D-0] 파이널 프로젝트까지 끝! (1) | 2024.11.13 |
[24.10.16] finalproject day8일차 일과 (0) | 2024.10.18 |
[24.10.24] 파이널프로젝트 day1 (0) | 2024.10.04 |