728x90
반응형
JadenCase 문자열 만들기
문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은
소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는
알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열
s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수,
solution을 완성해주세요.
제한 조건
🦖s는 길이 1 이상 200 이하인 문자열입니다.
🦖s는 알파벳과 숫자,
공백문자(" ")로 이루어져 있습니다.
🦖숫자는 단어의 첫 문자로만 나옵니다.
🦖숫자로만 이루어진 단어는 없습니다.
🦖공백문자가 연속해서 나올 수 있습니다.
입출력 예시
s | return |
---|---|
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
🦖내가 한 풀이
처음에는 소문자로 만들어 주고, 공백단위 단어를 나누어 주었습니다.
map()을 활용하여서 새로운 배열을 만들어 주었습니다. 여기서 replace와
charAt(0), 정규식 표현으로 앞글자를 찾아주었습니다. join()은 공백을
포함해야 합니다.
let s = "3people unFollowed me";
function solution(s) {
var answer = '';
//소문자 만들기 & 공백으로 나눠주기
s = s.toLowerCase().split(' ');
//공백여부도 포함, charAt으로 앞글자 찾음
answer = s.map(e => e.replace(/^./,e.charAt(0).toUpperCase())).join(' ')
return answer;
}
🦖다른 풀이
정규식 표현대신에 substring()과 charAt()을 함께 사용해 찾을 수도 있네요.replace()사용하지 않고, 바로 charAt(0)과 substring(1)으로 첫번째와 두번째를 따로 찾을수 있군요.
function solution(s) {
return s.split(" ").map(v => v.charAt(0).toUpperCase() + v.substring(1).toLowerCase()).join(" ");
}
'알고리즘 공부' 카테고리의 다른 글
프로그래머스 1단계 - K번째수 (1) | 2022.12.09 |
---|---|
프로그래머스 2단계 - 최댓값과 최솟값 (6) | 2022.12.08 |
프로그래머스 2단계 - 올바른 괄호 (2) | 2022.12.06 |
프로그래머스 1단계 - 폰켓몬 (1) | 2022.12.06 |
프로그래머스 1단계 - 숫자 문자열과 영단어 (1) | 2022.12.04 |
댓글