Python으로 구현한 10820번 문자열 분석 문제 풀이입니다.
https://www.acmicpc.net/problem/10820
while True :
lower = 0
upper = 0
number = 0
blank = 0
try :
s = input()
for i in range(len(s)) :
if 97 <= ord(s[i]) <= 122 :
lower += 1
elif 65 <= ord(s[i]) <= 90 :
upper += 1
elif s[i] == ' ' :
blank += 1
else :
number += 1
except :
break
print(lower, upper, number, blank)
1. 입력 횟수에 제한이 없기 때문에 try ~ except 문을 활용하여 계속해서 입력받을 수 있도록 한다.
2. 반복문을 통해 입력받은 문자열의 문자를 하나씩 확인하여 그 값을 아스키코드 값으로 변환한다.
3. 해당 아스키코드 값이 97 이상 122 이하라면 소문자에 해당하기 때문에 lower에 1을 증가시킨다.
4. 해당 아스키코드 값이 65 이상 90 이하라면 대문자에 해당하기 때문에 upper에 1을 증가시킨다.
5. 해당 문자가 공백일 경우 blank에 1을 증가시킨다.
6. 모두 그렇지 않을 경우 number에 1을 증가시킨다.
7. 최종적으로 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.
'백준(Python) 풀이 > 구현' 카테고리의 다른 글
백준(Python) 1547번 공 풀이 (0) | 2021.11.15 |
---|---|
백준(Python) 10170번 NFC West vs North 풀이 (0) | 2021.11.15 |
백준(Python) 10824번 네 수 풀이 (0) | 2021.11.15 |
백준(Python) 1076번 저항 풀이 (0) | 2021.11.15 |
백준(Python) 10798번 세로읽기 풀이 (0) | 2021.11.15 |