문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항
문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
s return
"try hello world" "TrY HeLlO WoRlD"
내 풀이:
def solution(s):
result = ""
for i , word in enumerate(s.split(" ")):
for j in range(len(word)):
result += word[j].upper() if j % 2 == 0 else word[j].lower()
result += " "
return result[:-1]
1) 문자열은 space로 나누어진 단어들로 구성되어 있다
=>먼저 단어만 가져오기위해 split()을 사용 #try #hello #world
2) 단어별로 짝/홀수 인덱스를 구분해야 한다
=> 짝수면 .upper() 홀수면 .lower()를 사용해서 만든다
3) 다시 단어를 넣고 공백을 넣어줘야 한다
=> result += " "을 하면 마지막단어를 넣고도 공백이 들어가서 실패로 뜬다
==> 그래서 리턴할때 마지막문자를 빼고 하기위해 [:-1]슬라이싱을 해줬다
혹시 for loop를 하나만 사용해서 풀 수는 없나 생각해봤는데 아무래도 2개 필요한거 같았고 enumerate를 안쓰고 word만 가져왔어도 됐을 거란 생각이 든다.