Problem Solving/프로그래머스

[프로그래머스/JavaScript] JadenCase 문자열 만들기

세고래 2022. 11. 3. 17:41

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

 

프로그래머스

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

programmers.co.kr


1) 풀이

요새 통 풀이를 적지 못했다..!

사실 문제는 좀 풀었는데, 풀이 적는 것에 권태기가 와서,, 많이 밀려있다

그래도 복기하는 것이 중요하니 오늘부터 열심히 적어봐야겠다!

 

레벨1을 자바스크립트로 얼추 다 풀고, 레벨 2 푸는 중

아직까지는 정답률이 높은 문제만 풀고 있어서 큰 난관은 없다!

 

이번 문제는 저번에 풀었던 문제랑 비슷한 것 같다

이상한 문자열 만들기 였나, 그거랑 비슷한 것 같은데 이번엔 좀 다른 방식으로 풀어봤다!

핵심은 map 함수를 두번 쓰고, map 함수를 사용한 배열들을 전부 join 으로 문자열로 만들어주는 것이다!

 

우선 공백을 기준으로 단어들이 들어오기 때문에 split 해주고, 그 배열을 map 함수로 돌렸다

그리고 그 map 함수로 받는 값 자체가 단어 하나인데, 그 단어 하나를 문자 하나하나를 저장하는 배열로 만들어주고 

(여기 부분은 spread 문법을 사용하여 쉽게 배열로 만들었다 이제 spread 장인 ㅋㅋ😏)

그 단어, 즉 그 단어 배열의 인덱스가 0 이면 toUpperCase 를 이용해 대문자로 바꿔주었다! 

그리고 그 문자 하나하나 배열을 join 으로 전부 문자열로 합쳐주고 겉을 감싸고 있는 단어들을 저장하는 배열도

구분자 공백을 받는 join 을 사용해주면 손쉽게 완료 된다!

 

처음에 이렇게 풀었을 때 틀렸다고 나왔는데, 이유가 인자로 받는 s에 첫글자 제외하고도 대문자로 적혀져있는 것이

있을 수 있기 때문에 toUpperCase 로 바꿔주는 부분에 제일 첫 글자가 아닐 경우 toLowerCase 를 이용해 소문자로 

바꿔주는 작업까지 했다! 그렇게 해서 최종 정답 코드는 아래에~

 

반년전만 해도, 이렇게 자바스크립트 내의 함수들을 여러개 쓰는 것조차 덜덜 떨었었던 내가 이제는 그 함수들을

이해하고 적절하게 사용할줄 아는 사람이 되었다! 이렇게 성장해나가는 거겠지 (。・ω・。)

2) 최종 소스코드
function solution(s) {
        const answer = s.split(" ").map((v)=>[...v].map((e,idx)=>
        idx===0?e.toUpperCase():e.toLowerCase()).join('')).join(' ');
        return answer;
}

 

728x90