본문 바로가기

TLI/코드카타

2024.06.08 TIL 코트카타 76번(JadenCase 문자열 만들기)

    fun solution(s: String): String {

        val sStringBuilder = StringBuilder(s)
        if(s[0].code in 97..122)
            sStringBuilder[0] = Character.toUpperCase(s[0])

        var beforeChar = s[0]
        for(sIndex in 1.. s.length-1) {
            val currentChar = s[sIndex]
            if(beforeChar == ' ' && currentChar.code in 97..122)
                sStringBuilder[sIndex] = Character.toUpperCase(currentChar)

            if(beforeChar != ' ' && currentChar.code in 65..90)
                sStringBuilder[sIndex] = Character.toLowerCase(currentChar)

            beforeChar = currentChar
        }

        return sStringBuilder.toString()
    }

 

풀이 과정

1. s[0]은 이전 글자가 없기 때문에 따로 확인한다

2. s[1]부터 한 글자씩 마지막 인덱스까지 확인한다.

   2.1. 이전 문자가 공백인데(현재 문자가 시작인데) 소문자인 경우 -> 대문자로 변경

   2.2. 이전 문자가 공백이 아닌데(현자 문제가 시작문자가 아닌데) 대문자인 경우 -> 소문자로 변경

3. 현재 문자를 이전 문자로 초기화