import re
def solution(s):
strings = re.split('([ ])', s)
answer = []
for string in strings:
if string == ' ':
answer.append(string)
else:
ans = ''
for i in range(len(string)):
if i%2 == 0:
ans += string[i].upper()
else:
ans += string[i].lower()
answer.append(ans)
return(''.join(answer))
이 문제를 기록하는 이유는 공백 때문이다.
처음에 공백 기준으로 리스트를 만들어서(s.split()
) 리스트의 각 원소(단어)를 대상으로 인덱스의 홀짝을 알아내어 바꿔줬는데 이렇게 하면 단어 사이의 공백이 2개 이상일 때 문제가 생긴다.
그래서 정규표현식을 사용하여 strings = re.split('([ ])', s)
이렇게 하면 ['try', ' ', 'hello', ' ', 'world'] 이렇게 공백까지 잘 담긴다. 따라서 원소가 공백일 때는 그냥 리스트에 넣으면 된다.
최근에 정규표현식에 대해 알게 되었는데 앞으로도 쓸 일이 많을 것 같다.