이상한 문자 만들기

bird.j·2021년 10월 12일
0

프로그래머스

목록 보기
37/53

프로그래머스

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'] 이렇게 공백까지 잘 담긴다. 따라서 원소가 공백일 때는 그냥 리스트에 넣으면 된다.

최근에 정규표현식에 대해 알게 되었는데 앞으로도 쓸 일이 많을 것 같다.

0개의 댓글