728x90
반응형
https://www.acmicpc.net/problem/10820
10820번: 문자열 분석
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있
www.acmicpc.net
문제 해결
사실 매우 쉬운 문제
소문자(l), 대문자(u),숫자(n), 띄어쓰기(b)를 각각 0으로 놔둔다음 islower(), isupper(), isdigit(), ' '(else) 조건문을 쓰면 끝이다.
그런데 문제는 어떻게 끝내냐가 첫 번째 문제인데 두가지가 있다. (1. try~ except EOFError 2. if not s:break로 끊을 수 있다.)
그리고 sys.stdin.readline이 문자열을 쓰면 Enter로 넘어간다고 한다. 그래서 rstrip('\n')이 필수!
CODE
import sys
input = sys.stdin.readline
while True:
s = input().rstrip('\n')
if not s:
break
l,u,n,b = 0, 0, 0, 0# 소문자, 대문자, 숫자, 공백 개수
for spell in s:
if spell.isupper():
u += 1
elif spell.islower():
l += 1
elif spell.isdigit():
n += 1
else:
b += 1
print(l,u,n,b)
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[Python] 백준 1373 2진수 8진수 (0) | 2022.12.19 |
---|---|
[Python] 백준 11655 ROT13 (0) | 2022.12.16 |
[Python] 백준 1918 후위 표기식 (0) | 2022.12.15 |
[Python] 백준 1935 후위 표기식2 (0) | 2022.12.14 |
[Python] 백준 17413 단어 뒤집기2 (0) | 2022.12.14 |
댓글