반응형
문제 설명
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.
각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.
입력
첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.
출력
첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.
예제 입력, 예제 출력
This is String SPACE 1 SPACE S a M p L e I n P u T 0L1A2S3T4L5I6N7E8 |
10 2 0 2 0 10 1 8 5 6 0 16 0 8 9 0 |
코드 및 설명
while True:
try:
n = input()
n_arr = [0, 0, 0, 0]
answer = ""
for char in n:
if char.isalpha():
if ord(char) >= 97:
n_arr[0] += 1
else:
n_arr[1] += 1
elif char == " ":
n_arr[3] += 1
else:
n_arr[2] += 1
#answer = " ".join(str(val) for val in n_arr)
for val in n_arr:
answer += f"{val} "
print(answer)
except Exception as err:
break
이 문제는 입력 받은 문자열에 문자들이 소문자, 대문자, 숫자, 공백인지 확인하고 개수를 출력하는 것이다.
예제에는 4줄의 입력받을 문자열이 있는 데 주어진 문자열에 개수도 없고 문자열만 4줄 나열된 걸 보면 while을 이용하고,
try except으로 처리해줘야할 것이다.
n_arr에 소문자, 대문자, 숫자, 공백 순으로 지정한다고 생각하고 [0, 0, 0, 0]을 만들어주었다.
그 후 입력받은 문자열을 하나하나 체크하며
알파벳인지 확인하고 ord(char) >= 97 소문자인지 대문자인지 구분
" " 공백 체크
나머진 숫자만 남기때문에 else에서 처리
이렇게 해주고 배열의 값을 출력해주면 된다.
반응형
'삽집하는 개발들 > 알고리즘' 카테고리의 다른 글
[97일차] ROT13 - 백준 - 11655(python - 문자열) (4) | 2023.12.16 |
---|---|
[97일차] 주식가격 - 프로그래머스 - 42584(python - 스택/큐) (1) | 2023.12.16 |
[96일차] 알파벳 찾기- 백준 - 10809(python - 문자열) (1) | 2023.12.15 |
[96일차] 알파벳 개수 - 백준 - 10808(python - 문자열) (0) | 2023.12.15 |
[95일차] 후위 표기식2 - 백준 - 1935(python - 스택) (2) | 2023.12.14 |