본문 바로가기

코딩 테스트/프로그래머스

[Python] 프로그래머스 lv.0 배열에서 문자열 대소문자 변환하기

 

정답코드

실패

for i in range(len(arr)) :
    if i % 2 == 0 :
        arr[i].lower()
    else :
        arr[i].upper()

이렇게 solution 함수를 구현했는데 upper, lower이 원래 리스트에 적용되지 않는다.

처음에는 문자가 아닌 문자열은 안되나 하고 다음과 같이 코드를 작성해서 테스트 해봤는데 잘 된다..

str = "aaa"
print(str.upper())

# AAA

 

정답

def solution(strArr):
    for i in range(len(strArr)) :
        if i % 2 == 0 : 
            strArr[i] = strArr[i].lower()
        else : 
            strArr[i] = strArr[i].upper()
    return strArr

바꾼 값을 다시 해당 자리에 넣어줘야 한다.

 

다른 사람 코드

def solution(strArr):
    return [s.lower() if i % 2 == 0 else s.upper() for i, s in enumerate(strArr)]