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;
}
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[프로그래머스/JavaScript] 피보나치 수 (0) | 2022.11.04 |
---|---|
[프로그래머스/JavaScript] 3진법 뒤집기 (0) | 2022.11.03 |
[프로그래머스/JavaScript] 올바른 괄호 (0) | 2022.10.25 |
[프로그래머스/JavaScript] 2016년 (0) | 2022.10.23 |
[프로그래머스/JavaScript] 폰켓몬 (0) | 2022.10.23 |