import sys
input = sys.stdin.readline
input_str = input().split('\n')
lower, upper, digit, space = 0, 0, 0, 0
for i in input_str:
for j in range(len(i)):
if i[j].islower():
lower += 1
elif i[j].isupper():
upper += 1
elif i[j].isdigit():
digit += 1
elif i[j] == " ":
space += 1
print(lower, upper, digit, space)
-> 틀림
-> N개의 문자열을 한 번에 입력받아서 줄바꿈으로 나눈다고 생각했는데 문제에서는 문자열이 한 줄씩 주어짐
통과한 코드
import sys
while True:
# 한 줄씩 입력
s = sys.stdin.readline().rstrip('\n') # 문자열 맨 오른쪽의 줄바꿈 삭제
# 입력되는 값이 없으면 break
if not s:
break
lower, upper, digit, space = 0, 0, 0, 0
# 문자열 분석
for i in range(len(s)):
if s[i].islower():
lower += 1
elif s[i].isupper():
upper += 1
elif s[i].isdigit():
digit += 1
elif s[i] == " ":
space += 1
print(lower, upper, digit, space)