[문제]
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
[풀이]
split 함수로 공백을 기준으로 단어를 나눠보자. 여기서 단어 사이의 공백이 두 개 이상일 경우 하나를 제외한 나머지는 빈 문자열로 저장된다. 나눈 단어들을 하나씩 꺼내서 인덱스가 홀수인지 짝수인지에 따라 대소문자 처리를 해준다. 이를 편히 하기 위해 단어들을 꺼낼 때 enumerate를 사용한다. 대소문자 처리한 단어들을 join 함수로 빈문자열로 연결하고, 그런 단어들을 또 join함수로 처리하되 이번엔 공백으로 연결한다.
def solution(s):
return ' '.join(
''.join(
c.upper() if i % 2 == 0 else c.lower()
for i, c in enumerate(word)
)
for word in s.split(' ')
)