본문 바로가기

알고리즘 공부/백준 > Python3

[백준 파이썬] #10820: 문자열 분석

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

 

10820번: 문자열 분석

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

www.acmicpc.net

[문제]

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

각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.

첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.

[문제 접근]

문자열의 알파벳 소문자 → islower()

문자열의 알파벳 대문자 → isupper()

숫자 → isdigit()

제한 없는 입력받기이므로 무한 while문을 돌면서 try except문을 사용해준다.

 

[정답]

 

1. while문을 무한 반복하되 EOFError가 나게 되면 while문을 break한다.

EOFError : 파일의 끝 읽을 내용이 없을 경우 에러 발생

2. 알파벳 소문자, 대문자, 숫자, 공백을 저장할 lower, upper, num, space를 선언한다.

3. 변수 text에 문자열을 입력받는다.

4. for문을 돌면서 if문을 활용하여 만약 text의 islower()가 True라면 lower+=1, text의 isupper()가 True라면 upper+=1, text의 isdigit()가 True라면 num+=1, 이에 다 해당되지 않으면 공백이므로 space+=1 해준다.

5. 최종적으로 lower, upper, num, space를 출력한다.