Basic_Studies/알고리즘 문제풀이
[파이썬] 백준 - 10820: 문자열 분석
adore_voy
2021. 1. 30. 13:57
문제
풀이
이 문제 풀기 전 부터 드는 생각이 굉장히 많았다.
우선, 입력받은 숫자들의 N이 없는데 이걸 EOFError로 try except 써야하나?
한 줄 받고 한 줄 출력하는건가 n줄 입력 후 n줄 출력하는건가? 그렇다면 2단 리스트를 써야하나?
소문자 대문자 검사는 ord로 아스키 숫자로 바꾸고 해당 숫자 범위만큼은 소문자이고 다른건 대문자이고 구별해야하나?
띄어쓰기는 또 어떡하지? 등....
그렇지만 친절한 파이썬은 문자열을 검사하는 너무도 간편한 함수들이 있었다.
한 줄 받고 한 줄 출력하는 형식이라 만약 입력받은 string이 아니라면 break를 거는 방식으로 while문을 이용한다.
import sys
while True:
strings = sys.stdin.readline().rstrip('\n')
up, lo, sp, nu = 0, 0, 0, 0
if not strings:
break
for i in strings:
if i.isupper(): # 대문자 검사
up += 1
elif i.islower(): # 소문자 검사
lo += 1
elif i.isdigit(): # 숫자 검사
nu += 1
elif i.isspace(): # 공백 검사
sp += 1
sys.stdout.write("{} {} {} {}\n".format(lo, up, nu, sp))
반응형