문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
s | return |
---|---|
"try hello world" | "TrY HeLlO WoRlD" |
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
def solution(s):
answer = ""
s = s.split(" ")
for i in s:
for j in range(len(i)):
if j%2 !=0:
answer += i[j].lower()
else:
answer += i[j].upper()
answer += " "
return answer[0:-1]
문제는 안어려웠는데.. 정확도에서 박살이 났었다..
이유는 문제를 잘 읽어야 함과 동시에 여러가지 경우를 check 했는지를 보고 싶었던 문제였다. (꼼꼼하게 case를 다 고려해봤는지의 중요성)
와 같이 고려했어야 100% 정확도를 얻을 수 있었다.
그리고 split(” “)과 split() 의 차이점에 대해서도 알아봤다.
(s.split() 했을때 정확도에서 자꾸 6점 밖에 부여 안되서 s.split(” “)로 바꿨더니 100 나옴)
split()
은 모든 공백을 한번에 처리하고 반면에 split(' ')
은 이후 공백을 전부 따로따로 처리한다.
ex)
print("a bb ccc dddd ".split())
print("a bb ccc dddd ".split(' '))
결과값
['a', 'bb', 'ccc', 'dddd']
['a', 'bb', '', 'ccc', '', '', 'dddd', '', '', '', '']