ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 30. JadenCase 문자열 만들기
    코딩 테스트/Level 2 2020. 8. 14. 10:17
    반응형

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

    JadenCase 문자열 만들기
    연습문제 
    3010명 완료

    문자열을 다루는 함수들을 몰라도.. 
    어렵지 않게 풀수 있지만.. 
    알면 더 편하다. 

     

    코딩테스트 연습 - JadenCase 문자열 만들기

    JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건

    programmers.co.kr

    파이썬

    def solution(s):
        words = s.split(' ')
        for i, word in enumerate(words):
            words[i] = word.capitalize()
        return ' '.join(words)
    테스트 1 〉	통과 (0.04ms, 10.7MB)
    테스트 2 〉	통과 (0.04ms, 10.7MB)
    테스트 3 〉	통과 (0.04ms, 10.7MB)
    테스트 4 〉	통과 (0.04ms, 10.7MB)
    테스트 5 〉	통과 (0.05ms, 10.5MB)
    테스트 6 〉	통과 (0.04ms, 10.6MB)
    테스트 7 〉	통과 (0.06ms, 10.7MB)
    테스트 8 〉	통과 (0.05ms, 10.7MB)
    테스트 9 〉	통과 (0.04ms, 10.7MB)
    테스트 10 〉	통과 (0.04ms, 10.7MB)
    테스트 11 〉	통과 (0.04ms, 10.6MB)
    테스트 12 〉	통과 (0.04ms, 10.7MB)
    테스트 13 〉	통과 (0.04ms, 10.6MB)
    테스트 14 〉	통과 (0.05ms, 10.7MB)
    테스트 15 〉	통과 (0.05ms, 10.7MB)
    테스트 16 〉	통과 (0.04ms, 10.7MB)
    def solution(s):
        return ' '.join(map(lambda x: x.capitalize(), s.split(' ')))
    테스트 1 〉	통과 (0.05ms, 10.7MB)
    테스트 2 〉	통과 (0.07ms, 10.7MB)
    테스트 3 〉	통과 (0.05ms, 10.7MB)
    테스트 4 〉	통과 (0.05ms, 10.8MB)
    테스트 5 〉	통과 (0.05ms, 10.6MB)
    테스트 6 〉	통과 (0.05ms, 10.6MB)
    테스트 7 〉	통과 (0.05ms, 10.7MB)
    테스트 8 〉	통과 (0.05ms, 10.7MB)
    테스트 9 〉	통과 (0.05ms, 10.7MB)
    테스트 10 〉	통과 (0.04ms, 10.6MB)
    테스트 11 〉	통과 (0.05ms, 10.7MB)
    테스트 12 〉	통과 (0.05ms, 10.7MB)
    테스트 13 〉	통과 (0.04ms, 10.7MB)
    테스트 14 〉	통과 (0.05ms, 10.8MB)
    테스트 15 〉	통과 (0.06ms, 10.7MB)
    테스트 16 〉	통과 (0.04ms, 10.6MB)

    map(함수, 이터러블)을 실행하면
    이터러블의 각각의 엘리먼트에 함수를 먹여서
    이터레이터로 돌려준다.

    이터레이터이기 때문에
    확인을 하려면
    리스트나 튜플 등으로 바꿔줘야 한다. 

    >>> map(len, ["1234","1","23"])
    <map object at 0x0466e9c0>
    
    >>> tuple(map(len, ["1234","1","23"]))
    (4, 1, 2)

     

    Java

    자바의 split는 꼬다리의 빈 문자열을 날려버린다. 
    "   ".split(" ")의 결과는 [] 텅빈 배열이다. 
    "  s   ".split(" ") 은 [, , s] 이다. 
    앞은 왜 살려두냐구?

    "   ".split(" ", -1) 을 해야 꼬다리의 빈 문자열이 인식된다. 

    자바에서 예측 불가능한 게
    이 함수 뿐만이 아니니.. 머.. 
    중구난방 API ㅎㅎㅎ

     

    class Solution {
        public String solution(String s) {
            var sSplit = s.toLowerCase().split(" ", -1);
            for (var i = 0; i < sSplit.length; i++)
                if (sSplit[i].length() > 0)
                    sSplit[i] = sSplit[i].substring(0, 1).toUpperCase() + sSplit[i].substring(1);
            return String.join(" ", sSplit);
        }
    }
    테스트 1 〉	통과 (1.32ms, 67.2MB)
    테스트 2 〉	통과 (1.80ms, 76.3MB)
    테스트 3 〉	통과 (1.94ms, 76.3MB)
    테스트 4 〉	통과 (1.50ms, 65.4MB)
    테스트 5 〉	통과 (1.59ms, 81.4MB)
    테스트 6 〉	통과 (1.29ms, 66.9MB)
    테스트 7 〉	통과 (1.67ms, 83.3MB)
    테스트 8 〉	통과 (1.66ms, 70.3MB)
    테스트 9 〉	통과 (2.13ms, 79.1MB)
    테스트 10 〉	통과 (1.37ms, 74.4MB)
    테스트 11 〉	통과 (1.74ms, 71.7MB)
    테스트 12 〉	통과 (2.00ms, 70.2MB)
    테스트 13 〉	통과 (1.47ms, 74.1MB)
    테스트 14 〉	통과 (1.80ms, 76.6MB)
    테스트 15 〉	통과 (1.74ms, 70.3MB)
    테스트 16 〉	통과 (2.37ms, 74.8MB)
    테스트 17 〉	통과 (1.32ms, 83.9MB)
    테스트 18 〉	통과 (1.61ms, 71.9MB)

    빠르게....

    class Solution {
        public String solution(String s) {
            var spaceCheck = true;
            var answer = s.toLowerCase().toCharArray();
            for (var i = 0; i < answer.length; i++) {
                if (spaceCheck && answer[i] >= 97) answer[i] -= 32;
                spaceCheck = (answer[i] == ' ');
            }
            return String.valueOf(answer);
        }
    }
    테스트 1 〉	통과 (0.02ms, 79.1MB)
    테스트 2 〉	통과 (0.04ms, 88.6MB)
    테스트 3 〉	통과 (0.03ms, 80.8MB)
    테스트 4 〉	통과 (0.04ms, 83.1MB)
    테스트 5 〉	통과 (0.07ms, 74.3MB)
    테스트 6 〉	통과 (0.06ms, 72.7MB)
    테스트 7 〉	통과 (0.04ms, 74.1MB)
    테스트 8 〉	통과 (0.03ms, 74.9MB)
    테스트 9 〉	통과 (0.04ms, 76.7MB)
    테스트 10 〉	통과 (0.02ms, 73.2MB)
    테스트 11 〉	통과 (0.04ms, 73.9MB)
    테스트 12 〉	통과 (0.03ms, 75.1MB)
    테스트 13 〉	통과 (0.03ms, 77.4MB)
    테스트 14 〉	통과 (0.05ms, 76MB)
    테스트 15 〉	통과 (0.05ms, 75.7MB)
    테스트 16 〉	통과 (0.03ms, 74.2MB)
    테스트 17 〉	통과 (0.04ms, 77.2MB)
    테스트 18 〉	통과 (0.03ms, 77.3MB)
    반응형
Designed by Tistory.