포스트

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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와 고차함수를 사용해서 해보고 싶었으나 뒤에 조건을 어떻게 해야할지 몰라 못했는데 아래 코드를 보고 어느부분이 부족한지 알았다.

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

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

다른코드

1
2
3
4
5
6
7
8
9
10
11
12
13
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 과 같은 표현인듯 하다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.