본문 바로가기

알고리즘 삽질장

[BOJ] 10820번 - 문자열 분석

반응형


문제설명

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

 

10820번: 문자열 분석

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

www.acmicpc.net

사고과정

  • 구현 내용은 쉬웠지만 다른 부분에서 자꾸 에러가 발생했다.
  • 1번째는 아무것도 입력이 안되면 종료되는 EOF Error 예외처리 구문을 입력해주는 것이었고,
  • 2번째는 EOF Error 외에 애초에 맨처음부터 아무것도 입력되지 않았을 때 while문을 빠져나가게 해줬어야 했고,
  • 3번째는 string을 입력받을 때, 줄 바꿈(개행)으로 해서 입력을 받기 때문에 끝에 \n 이 입력된다. 따라서 \n 기준으로 rstrip()을 했어야 한다.

풀이(스스로 못 푼 풀이)

import sys

while True:
    try:
        input = sys.stdin.readline
        # 소문자, 대문자, 숫자, 공백
        lower = upper = number = space = 0
        string = input().rstrip('\n')
        if not string:
            break
        for s in string:
            if s.islower():
                lower += 1
            elif s.isupper():
                upper += 1
            elif s.isnumeric():
                number += 1
            elif s == ' ':
                space += 1
        print(lower, upper, number, space)
    except EOFError:
        break
반응형

'알고리즘 삽질장' 카테고리의 다른 글

[BOJ] 10824번 - 네 수  (0) 2021.10.26
[BOJ] 11655번 - ROT13  (0) 2021.10.26
[BOJ] 10809번 - 알파벳 찾기  (0) 2021.10.26
[BOJ] 10808번 - 알파벳 개수  (0) 2021.10.26
[BOJ] 1935번 - 후위 표기식2  (0) 2021.10.26