💻 문제 - B2
👉 제출 코드
while True:
try:
S = input()
lower, upper, digit, space = 0, 0, 0, 0
for i in S:
if i.islower():
lower += 1
elif i.isupper():
upper += 1
elif i.isdigit():
digit += 1
elif i.isspace():
space += 1
print(lower, upper, digit, space)
except EOFError:
break
- 더 이상 입력이 없는 상황이 오면 EOFError 처리하여 break한다
- 대문자인지, 소문자인지, 숫자인지, 공백인지 확인하는 함수를 사용한다
case2: sys 라이브러리
import sys
while True:
S = sys.stdin.readline().rstrip('\n')
lower, upper, digit, space = 0, 0, 0, 0
if not S:
break
for i in S:
if 97 <= ord(i) <= 122:
lower += 1
elif 65 <= ord(i) <= 90:
upper += 1
elif i.isdigit():
digit += 1
elif i == ' ':
space += 1
print(lower, upper, digit, space)
- sys.stdin.readline()은 개행문자를 포함하고 있다. 그래서 문자열 마지막에 개행문자가 포함되는데 rstrip()을 사용하여 오른쪽 공백을 삭제한다.
- 대문자인지, 소문자인지를 아스키 코드 값을 사용하여 조건을 건다