1 분 소요

문제 링크

내 풀이

def solution(s):
    a = list(s)
    x = 0
    for i, word in enumerate(a):
        if word == ' ':
            x = 0
            continue
        if x % 2 == 0:
            a[i] = word.upper()
            x += 1
        else:
            a[i] = word.lower()
            x += 1
    return ''.join(a)

다른 풀이

def solution(s):
    
    words = s.split(" ") # s문자열을 " "을 기준으로 단어로 분리
    result = [] #변환된 결과를 저장할 리스트 초기화
    
    # 각 단어에 대해 반복
    for word in words:
        new_word = ''  # 변환된 단어를 저장할 변수 초기화
        
        # 단어 내 문자에 대해 인덱스와 함께 반복
        for idx, alp in enumerate(word):
            
            # 짝수 인덱스일 때 대문자로 변환하여 추가
            if idx % 2 == 0:
                new_word += alp.upper()
            
            # 홀수 인덱스일 때 소문자로 변환하여 추가
            else:
                new_word += alp.lower()
        
        # 변환된 단어를 결과 리스트에 추가
        result.append(new_word)
    
    # result 원소들 사이사이에 공백을 추가해서 문자열로 반환
    return " ".join(result)

풀이 해석

s를 공백기준으로 나눈뒤 단어를 읽고 그 안에서 idx를 부여하여 단어마다 초기화되게 하였다. 그 이후 list를 str로 변환하는 과정에서 “ “.join을 하여 단어 사이에 공백을 만들었다.

배울 점

  • ” “.join으로 단어 사이 공백 만들기

댓글남기기