문제
https://school.programmers.co.kr/learn/courses/30/lessons/12951?language=javascript
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
일차 풀이. map을 돌면서 첫글자가 숫자라면 통과 문자라면, 첫 글자는 대문자, 첫 글자 외에 나머지 글자는 소문자처리
=> 런타임 에러... 다시 최적화 해보자
function solution(s) {
let answer = s.split(" ").map((x) => {
return isNaN(x[0])
? x[0].toUpperCase() + x.slice(1).toLowerCase()
: x;
});
return answer.join(" ");
}
" " 공백이 이렇게 한개만 있는게 아닌 " " 이렇게 공백이 여러개인 문자열을 쪼갠 경우에는 런타임 에러에 걸릴 수 있다.
ex) "this is the nemo world" => [ 'this', 'is', '', '', 'the', '', '', 'nemo', '', '', '', 'world' ]
어차피 첫 글자는 대문자를 해줘야하니 숫자든 뭐든 x가 있다면 대문자 처리를 해준다. 숫자문자열이면 upperCase를 해도 1로 나옴
function solution(s) {
return s
.split(" ")
.map(x => x
? x[0].toUpperCase() + x.slice(1).toLowerCase()
: "" // 빈 문자열은 그대로 유지
)
.join(" ");
}
'개발 > 알고리즘(코딩테스트)' 카테고리의 다른 글
프로그래머스, 자바스크립트) 두 개 뽑아서 더하기 (0) | 2024.11.19 |
---|---|
프로그래머스, 자바스크립트) 올바른 괄호 (0) | 2024.11.18 |
프로그래머스, 자바스크립트) 최솟값 만들기 (0) | 2024.11.15 |
프로그래머스, 자바스크립트) 최댓값과 최솟값 (1) | 2024.11.14 |
프로그래머스, 자바스크립트) 숫자의 표현 (3) | 2024.11.13 |