본문 바로가기

알고리즘

[코딩 테스트] Level. 2 JadenCase 문자열 만들기 (코틀린)

728x90

 

이번 코딩테스트는 JadenCase 문자열 만들기 이다. 사실 이 문제는 어려운 문제는 아니지만

어떤식으로 코드를 짜야하나 고민을 많이 했던 것 같다. 

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

나의 풀이

var answer = ""
val a = s.split(" ")
a.forEachIndexed { index, it ->
    it.forEachIndexed { index2, c ->
        answer += if (index2 == 0) {
            c.uppercase()
        } else {
            if (c.isUpperCase()) 
                c.lowercase()
            else c
        }
    }
    if (index != a.size - 1)  answer += " "
    
}

return answer

 

 

다른 사람의 풀이 

capitalize() 는 1.5 부터 deprecated 되었다고 합니다. 

fun solution(s: String): String {
    return s.toLowerCase().split(" ").map {
        it.capitalize()
    }.joinToString(" ")
}

 

추천 코드가 있길래 바꿔봤더니 replaceFirestChar() 메소드가 있었습니다.

 capitalize()는 왜 deprecated 되었는지 궁금하네요.

 

return s.lowercase().split(" ").joinToString(" ") { s ->
    s.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }
}