1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
for T in range(int(input())):
N = int(input())
sent = input()
sent = sent.replace('.', ' @').replace('!', ' @').replace('?', ' @').split()
#print(sent)
result = ""
count = 0
for i in sent:
if i.isalpha() and i == i.capitalize():
count += 1
if i == '@':
result += str(count) + ' '
count = 0
print("#{} {}".format(T+1, result))
# 주어지는 문장을 띄어쓰기를 기준으로 나누기 위해 .split()을 사용하고
# 문제에서 주어진 `이름`의 조건이 `첫 알파벳이 대문자이고 나머진 소문자`이기 때문에
# 문자로만 이루어져있는 것인지 .isalpha()로 검증 (VS .isdigit() 주어진 문자열이 숫자인지 검증)
# `이름`의 조건이 맞는지 .capitalize()로 검증
# 추가 공부 내용
# upper - 주어진 문자열에서 모든 알파벳들을 대문자로 변환시킨다.
# capitalize - 주어진 문자열에서 맨 첫 글자를 대문자로 변환하고 나머지는 소문자로 변환시킨다.
# title - 주어진 문자열에서 알파벳 외의 문자(숫자, 특수기호, 띄어쓰기 등)로 나누어져 있는 영단어들의 첫 글자를 모두 대문자로 변환시킨다.
# .isalpha()와 .capitalize()를 알고나면 간단해지는 문제.
|