728x90
문제
문자열 N개가 주어진다.
이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.
각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.
https://www.acmicpc.net/problem/10820
입력
첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100)
문자열의 길이는 100을 넘지 않는다.
출력
첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.
예제
# input
This is String
SPACE 1 SPACE
S a M p L e I n P u T
0L1A2S3T4L5I6N7E8
# output
10 2 0 2
0 10 1 8
5 6 0 16
0 8 9 0
문제 풀이
while True:
try:
lower = 0
upper = 0
digit = 0
blank = 0
S = input()
for char.in S:
if char.islower():
lower += 1
elif char.isupper():
upper += 1
elif char.isdigit():
digit += 1
else:
blank += 1
print(lower, upper, digit, blank)
except:
break
while True:
try:
counts = {'lower':0, 'upper':0, 'digit':0, 'blank':0}
S = input()
for char in S:
if char.islower():
counts['lower'] += 1
elif char.isupper():
counts['upper'] += 1
elif char.isdigit():
counts['digit'] += 1
else:
counts['blank'] += 1
print(counts['lower'], counts['upper'], counts['digit'], counts['blank'])
except:
break
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90