[백준] 10820번: 문자열 분석

jooo·2023년 1월 15일
0

백준

목록 보기
19/35
post-thumbnail

💻 문제 - B2


👉 제출 코드

case1: input 함수

while True:
    try:
        S = input()
        lower, upper, digit, space = 0, 0, 0, 0
        for i in S:
            if i.islower():
                lower += 1
            elif i.isupper():
                upper += 1
            elif i.isdigit():
                digit += 1
            elif i.isspace():
                space += 1
        print(lower, upper, digit, space)
    except EOFError:
        break
  • 더 이상 입력이 없는 상황이 오면 EOFError 처리하여 break한다
  • 대문자인지, 소문자인지, 숫자인지, 공백인지 확인하는 함수를 사용한다

case2: sys 라이브러리

import sys
while True:
    S = sys.stdin.readline().rstrip('\n')
    lower, upper, digit, space = 0, 0, 0, 0
    if not S:
        break
    for i in S:
        if 97 <= ord(i) <= 122:
            lower += 1
        elif 65 <= ord(i) <= 90:
            upper += 1
        elif i.isdigit():
            digit += 1
        elif i == ' ':
            space += 1
    print(lower, upper, digit, space)
  • sys.stdin.readline()은 개행문자를 포함하고 있다. 그래서 문자열 마지막에 개행문자가 포함되는데 rstrip()을 사용하여 오른쪽 공백을 삭제한다.
  • 대문자인지, 소문자인지를 아스키 코드 값을 사용하여 조건을 건다
profile
조금씩, 꾸준히, 자주

0개의 댓글