https://school.programmers.co.kr/learn/courses/30/lessons/12951
시도 1
문자열을 공백으로 자르고 맨 앞자리가 숫자인지 확인 후 숫자가 아니면 title()이나 capitalize()로 앞글자만 대문자로 변경해주려 했습니다. 쉽다고 생각했는데 44.4점
으로 런타임 에러가 발생했습니다.
1
2
3
4
5
6
7
8
9
|
def solution(s):
answer = ''
arr = s.split(" ")
for string in arr:
if string[0].isalpha():
answer += string.title() + " "
else:
answer += string + " "
return answer[:-1]
|
시도 2
문자열을 돌면서 flag를 이용해서 첫번째가 숫자인지 알파벳인지 확인하고 공백이 있을경우 flag값을 변경했습니다. 66.7점
으로 런타임 에러가 발생했습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
def solution(s):
answer = ''
flag = True
for char in s:
if char.isdigit():
answer += char
flag = False
elif flag:
answer += char.upper()
flag = False
elif char == " ":
answer += " "
flag = True
else:
answer += char.lower()
return answer
|
시도 3
1번 풀이에서 앞글자가 숫자인지 판별하는 조건문을 뺐습니다.
1
2
3
4
5
6
7
|
def solution(s):
answer = ''
s = s.split(' ')
for i in range(len(s)):
s[i] = s[i].capitalize()
answer=' '.join(s)
return answer
|
다른사람 풀이
1
2
|
def solution(s):
return ' '.join([word.capitalize() for word in s.split(" ")])
|