코딩테스트 준비/백준

[백준] 10820번 문자열 분석 - 파이썬(Python)

youjin86 2021. 8. 1. 00:09

https://www.acmicpc.net/problem/10820

 

10820번: 문자열 분석

문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있

www.acmicpc.net

 

문제

 

접근법

 

주어지지 않은 N개까지 입력을 받는거라 어떻게 받는지 몰라 당황했다.

 

찾아보니 이런 경우에는 while문을 통해 계속 입력을 받다가

그냥 단순히 입력 받은 변수가 존재하지 않을 때 break를 하는 코드를 사용하면 되었다.

 

또한, 개행문자로 분리된 문자열을 한 줄씩 받다보니 rstrip('\n')를 통해 개행문자를 제거해줘야 했다.

 

그리고 다음과 같은 함수들을 사용하였다.

- 대문자인지 판별하는 isupper()

- 소문자인지 판별하는 islower()

- 숫자인지 판별하는 isdigit()

 

 

코드

import sys

while 1:
    arr=sys.stdin.readline().rstrip('\n')

    if not arr:
        break

    lower,upper,number,empty=0,0,0,0

    for i in arr:
        if i.islower():
            lower+=1

        elif i.isupper():
            upper+=1

        elif i.isdigit():
            number+=1

        else:
            empty+=1

    print(lower,upper,number,empty, sep=' ')