반응형

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

 

 

** Javascript

 

 

const re = /[0-9]/ // (필요없음)
function solution(s) {
    let words = s.split(" ");
    for (let i = 0; i < words.length; i++) {
        words[i] = words[i].charAt(0).toUpperCase() + words[i].substr(1).toLowerCase();
    }
    return words.join(" ");
}

 

글자를 띄어쓰기대로 나누고 글자의 첫 character만 대문자로 바꾸고 나머지(인덱스 1부터 나머지 character)는 소문자로 바꾼 뒤 붙인다.

 

구글링해서 Jaden Case 하는 방법을 알아서 바로 저렇게 제출됐다.

그런데 푼 사람이 적은 건지 11점이나 받아서 놀람

 

처음에 정규식 시도했던 터라 제출 버튼을 누르고 실행중지를 눌렀지만 제출 답안에 const re = /[0-9]/ 까지 맨 윗줄에 들어가버렸다.

 

 

한 줄로 줄인다면

 

function solution(s) {
    return s.split(" ").map((char, index) => char.charAt(0).toUpperCase() + char.substr(1).toLowerCase()).join(" ");
}

 

 

추천을 가장 많이 받은 풀이도 위 식으로 풀었다.

 

하지만 시간은 for 문 돌린 게 더 빨리 나왔다.

 

 

숫자는 upperCase 해도 바뀌지 않고 그대로 return 되는 것 같다.

 

 

** Python (2021-11-29)

 

def solution(s):
    return ' '.join([i.capitalize() for i in s.split(' ')])

 

 

 

 댓글에 공백문제로 시끌시끌하던데

 

def solution(s):
    st = ' '.join([i.capitalize() for i in s.split(' ')])
    return ' '.join([i for i in st.split()])

 

이렇게 하면 공백 여러 개가 한 개로 바뀌긴 함

반응형

+ Recent posts