코딩 테스트/Python

이상한 문자 만들기

susinlee 2024. 12. 15. 23:46

[문제]

문자열 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(' ')
    )

'코딩 테스트 > Python' 카테고리의 다른 글

시저 암호  (0) 2024.12.16
삼총사  (0) 2024.12.16
3진법 뒤집기  (0) 2024.12.15
최대공약수와 최소공배수  (0) 2024.12.15
행렬의 덧셈  (0) 2024.12.15