[백준] 10820번 문자열 분석 - Python / 알고리즘 기초 1/2 - 자료구조 1 (참고)

ByungJik_Oh·2025년 3월 20일
0

[Baekjoon Online Judge]

목록 보기
17/244
post-thumbnail



💡문제

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

각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.

입력

첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.

출력

첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.


💭 접근

주어진 조건에 따라서 구현하면 되는 문제.

word.islower()
-> 문자가 소문자인지 판별해주는 함수
word.isupper()
-> 문자가 대문자인지 판별해주는 함수
word.isdecimal()
-> 문자가 int형으로 변환가능한지 판별해주는 함수
word.isblank()
-> 문자가 공백인지 판별해주는 함수


📒 코드

while True:
    try:
        s = input()
        lower = 0
        upper = 0
        number = 0
        blank = 0

        for word in s:
            if word.islower():
                lower += 1
            elif word.isupper():
                upper += 1
            elif word.isdecimal():
                number += 1
            elif word.isspace():
                blank += 1

        print(lower, upper, number, blank)
    except EOFError:
        break

💭 후기

종료 조건이 이 문제와 같이 명확히 주어지지 않은 경우에는
EOFError 를 사용할 수 있는데,

while True:
	try:
    	...
 	except EOFError:
    	break

올바르지 않은 입력이 주어졌을 때 EOFError를 출력한다.
이러한 점을 활용하여 위와 같이 예외처리를 통해 구현할 수 있다.


🔗 문제 출처

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


profile
精進 "정성을 기울여 노력하고 매진한다"

0개의 댓글