포스트

80. 특정한 문자를 대문자로 바꾸기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import Foundation

func solution(_ my_string:String, _ alp:String) -> String {
    
    var answer : String = ""    
    var arr : [String] = []
    arr = my_string.map{String($0)}
    
    if my_string.contains(alp) {
        for i in arr.indices{
            if arr[i] == alp {
                arr[i] = String(arr[i]).uppercased()
            }
        }
        answer = arr.joined()
    } else {
        answer = my_string
    }

    return answer
}

처음에 아래와 같이 map 을 이용하려고 삼항연산자 까지 썼다가. 아닌경우에는 어떻게 해야하나 고민을 햇는데. 애초에 아닌경우에는 소문자로 리턴을 했으면 되는문제였는데 너무 복잡하게 생각했던것같다.

map 안에 삼항연산자를 사용하여 배열을 만들 수 있는데 아직 그부분이 부족한것같다.

다른코드

1
2
3
4
5
6
7
import Foundation

func solution(_ my_string:String, _ alp:String) -> String {
    return my_string.map { String($0) == alp ? $0.uppercased() : $0.lowercased() }.joined()
}
//

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