https://www.acmicpc.net/problem/10820
10820번: 문자열 분석
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있
www.acmicpc.net
import sys
while True:
s = sys.stdin.readline().rstrip("\n")
if not(s):
break
else:
lower = 0
upper = 0
number = 0
blank = 0
for c in s:
if c.islower():
lower += 1
elif c.isupper():
upper += 1
elif c.isdigit():
number += 1
else:
blank += 1
else:
print(lower, upper, number, blank)
sys.stdin.readline()으로 읽어들인 문자열은 input() 메서드로 읽는 것과는 다르게 뒤에 \n가 붙는다.
이 문제는 공백도 카운트 하므로 strip() 메서드를 써버리면 안된다. 앞 뒤 모두 제거 하기 때문이다.
따라서 뒤에 자동으로 붙는 이스케이프 문자인 \n만 삭제해준다.
참고로 이스케이프 문자는 겉으로 보기엔 \n 처럼 2글자로 보이지만 1글자로 취급한다.
'알고리즘 > 백준-파이썬' 카테고리의 다른 글
[백준] 11655번 (python 파이썬) (0) | 2022.04.09 |
---|---|
[백준] 2743번 (python 파이썬) (0) | 2022.04.09 |
[백준] 10809번 (python 파이썬) (0) | 2022.04.09 |
[백준] 10808번 (python 파이썬) (0) | 2022.04.08 |
[백준] 1935번 (python 파이썬) (0) | 2022.04.08 |