2020. 5. 8. 23:49

[python](프로그래머스)이상한 문자 만들기

문제 설명


문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

 

제한 사항


  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

 

문제 풀이


핵심은 split으로 리스트로 바꾸었다가 for문으로 가져와서 스트링으로 하나씩 바꿔 넣은 것들을 새로운 리스트에 넣고, 그것을 다시 스트링으로 변환해서 리턴해주는 것이다.

def solution(s):
    s_ = s.split(" ")
    answer = []
    for i in s_:
        s=""
        for j in range(0, len(i)):
            s += i[j].upper() if j%2 == 0 else i[j].lower()
        answer.append(s)
    return " ".join(answer)

한 단어가 끝나면 s를 초기화해준다음 한글자씩 upper와 lower된 글자를 넣고 최종적으로 리턴할 리스트에 append시킨다. 배열 각 원소마다는 join 함수를 통해 공백으로 구분되어진다.