본문 바로가기
알고리즘/[python] 백준 BOJ

[Python] 백준 10820 문자열 분석

by Alan_Kim 2022. 12. 16.
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
반응형

댓글