알고리즘 CODEKATA 41 (이상한 문자 만들기)

오리너구리·2024년 6월 18일
0

CODEKATA

목록 보기
40/57
post-thumbnail

문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.


제한 사항

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

내 풀이

class Solution {
    fun solution(s: String): String {
        return s.split(" ").joinToString(" ") { word ->
            word.mapIndexed { index, char ->
                if (index % 2 == 0) {
                    char.uppercaseChar()
                } else {
                    char.lowercaseChar()
                }
            }.joinToString("")
        }
    }
}
class Solution {
    fun solution(s: String): String {
        var answer = castingCase(s)
        

        return answer
    }
    
    fun castingCase(string : String): String{
        for (i in 0 .. string.length){
            if(i%2==0){
                string.toLowerCase(i)
            }else{
                string.toUpperCase(i)
            }
        }
        
    }
}

처음 문제보고 이렇게 풀어야지 생각했는데

적고보니 toLowerCase랑 toUpperCase 안에는 string자체가 들어가고 인덱스가들어가는게아니넹..

class Solution {
    fun solution(s: String): String {

        var sToList : MutableList<Char> = s.toMutableList() 
        var castingCase = sToList.mapIndexed{index, char ->
            if (index%2==0){
                char.uppercaseChar()
            }else{
                char.lowercaseChar()
            }
        }

        var answer = castingCase.joinToString("")

        return answer
    }

}

이렇게 바꿨는데.. 이거는 몇개는 통과하는데 나머지 틀림

힌트 보니까..공백문자 기준으로 인덱스가 초기화되어야할듯

class Solution {
    fun solution(s: String): String {
        return s.split(" ").joinToString(" ") { word ->
            word.mapIndexed { index, char ->
                if (index % 2 == 0) {
                    char.uppercaseChar()
                } else {
                    char.lowercaseChar()
                }
            }.joinToString("")
        }
    }
}

하 시간 다돼서 그냥 구글링해서 참고해서 풀었음..ㅜ
오늘은.. 발제를가야하기때문엥.. 나중에 다시 또 해야겠다..

profile
오리너구리입니다

0개의 댓글