카테고리 없음

프로그래머스 - L2 JadenCase 문자열 만들기

김쿡 2023. 2. 16. 13:45

설계

문자열을 lowercased로 변환하여 통일한다

공백으로 split한 배열을 순회하여 첫 글자를 upperCased로 변환한다

git : JadenCase 문자열 만들기

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12951


문제 풀이

설계대로 진행하려 했으나, split 된 문자열의 다시 첫번째를 변환이 까다롭다고 생각하였습니다.

그래서 문자열을 순회하여 첫 글자와 공백이 나온 다음 글자를 대문자 변환하여 진행하였습니다.

import Foundation

func solution(_ s:String) -> String {
    var stringArray = Array(s.lowercased()).map{ item in
        return String(item)
    }
    
    stringArray.enumerated().forEach{ index , item in
        if(index == 0) {
            stringArray[index] = item.uppercased()
        }
        
        if(item == " ") {
            if(index + 1 < stringArray.count) {
                stringArray[index + 1] = stringArray[index + 1].uppercased()
            }
        }
    }
    
    return stringArray.joined(separator: "")
}

다른 사람 풀이 분석

프로그래머스 - ywangnon , 강호성 , 홍서연 , Chart 외 1 명


func solution(_ s:String) -> String {
    var ans = ""
    var index = 0

    for char in s {
        if char != " " {
            if index == 0 {
                ans += String(char).uppercased()
            } else {
                ans += String(char).lowercased()
            }
            index += 1
        } else {
            ans += " "
            index = 0
        }
    }
    return ans
}

굳이 문자열을 String Array 변환 없이 진행 할 수도 있습니다.

여러분들은 어떤 방식으로 해결하셨나요~?

정리

L2도 아직은 할 만 한데?