잡다한 배똥월드

728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

코딩테스트 연습 - 이상한 문자 만들기

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

programmers.co.kr

 

 

 

 

 

class Solution {
    fun solution(s: String): String {
        var sArr = s.split(" ");
        
        var arr = Array(s.length){" "};
        var index = 0;
        
        for (i in 0..sArr.size - 1) {
            
            var temp = sArr[i].chunked(1);
            
            for (j in 0..temp.size-1) {
                if (j % 2 == 0) {
                    arr[index] = temp[j].toUpperCase();
                } else {
                    arr[index] = temp[j].toLowerCase();
                } 
                index++;
            }
            index++;
        }
        
        return arr.joinToString("");
    }
}

 

테스트 1 통과 (31.59ms, 66MB)
테스트 2 통과 (25.66ms, 66.9MB)
테스트 3 통과 (27.06ms, 66.1MB)
테스트 4 통과 (23.21ms, 65.7MB)
테스트 5 통과 (22.37ms, 66.6MB)
테스트 6 통과 (38.35ms, 66.7MB)
테스트 7 통과 (24.62ms, 66.2MB)
테스트 8 통과 (24.78ms, 66.7MB)
테스트 9 통과 (23.24ms, 66MB)
테스트 10 통과 (21.49ms, 65.9MB)
테스트 11 통과 (28.37ms, 66.2MB)
테스트 12 통과 (22.27ms, 65.8MB)
테스트 13 통과 (23.00ms, 66.3MB)
테스트 14 통과 (22.61ms, 66.3MB)
테스트 15 통과 (22.75ms, 65.9MB)
테스트 16 통과 (22.29ms, 66.1MB)

 

 

 

 

 

코틀린은 정말 하면 할수록 모르겠음

일단 Array()로 배열 선언을 하려면 무조건 내용이 필요함.

 그래서 {" "}로 내용을 채웠고,

각 단어들을 나누기 위해서 split()을 이용하여 띄어쓰기 기준으로 배열을 만들었고

각 단어들을 한 자리로 나누기 위해서 chunked(1)로 또 나누었음

그래서 짝수 자리는 대문자, 홀수 자리는 소문자로 해서 하나씩 넣었고

마지막에 joinToString()으로 배열을 합쳐서 리턴함

 

 

 

 

 

728x90

+ Recent posts