78. 배열에서 문자열 대소문자 변환하기

 


import Foundation

func solution(_ strArr:[String]) -> [String] {
    
    var answer : [String] = []
    
    answer = strArr
    
    for i in answer.indices{
        if i % 2 == 0 {
            answer[i] = answer[i].lowercased()
        } else {
            answer[i] = answer[i].uppercased()
        }
    }
    
    return answer
}

enumerated와 고차함수를 사용해서 해보고 싶었으나 뒤에 조건을 어떻게 해야할지 몰라 못했는데 아래 코드를 보고 어느부분이 부족한지 알았다.

삼항연산자를 쓰면 될까 생각만했는데 코드보니 내생각이 맞았다.

다음번엔 시도를 해봐야겠다.

다른코드

import Foundation

func solution(_ strArr:[String]) -> [String] {
    return strArr.enumerated().map { $0.offset % 2 != 0 ? $0.element.uppercased() : $0.element.lowercased() }
}
//
func solution(_ strArr: [String]) -> [String] { strArr.indices.map { ($0 % 2 == 0) ? strArr[$0].lowercased() : strArr[$0].uppercased() } }
//
import Foundation

func solution(_ strArr:[String]) -> [String] {
    return strArr.enumerated().map { $0.offset % 2 == 0 ? $0.element.lowercased() : $0.element.uppercased() }
}

$0.offset / $0.element 를 사용했는데 저번에 정리한 $0.0 / $0.1 과 같은 표현인듯 하다.