99클럽 코테 스터디 13일차 TIL - JadenCase (문자열)

Hyejin·2025년 4월 16일
0

99Club

목록 보기
14/21
post-thumbnail

문제: https://school.programmers.co.kr/learn/courses/30/lessons/12951
타입: 문자열 조작 구현

문제 설명

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다.
단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

제한 조건

s는 길이 1 이상 200 이하인 문자열입니다.
s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
숫자는 단어의 첫 문자로만 나옵니다.
숫자로만 이루어진 단어는 없습니다.
공백문자가 연속해서 나올 수 있습니다.

내 코드

function solution(s) {
    return s.split(" ").map(word => {
            if (word === "") return "";
            return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
        })
        .join(" ");
}

내장 메서드

split(separator)

문자열을 지정된 구분자(separator)를 기준으로 나눠서 배열로 반환
s.split(" ")는 공백 문자를 기준으로 문자열 s를 여러 단어로 나눔
예: "hello world".split(" ") → ["hello", "world"]
연속된 구분자가 있으면 빈 문자열이 포함 됨
예: "hello world".split(" ") → ["hello", "", "world"]

map(callback)

배열의 각 요소에 주어진 함수(callback)를 적용하여 새 배열을 생성
원본 배열의 각 요소를 변환하는 데 사용
예: [1, 2, 3].map(x => x * 2) → [2, 4, 6]

charAt(index)

문자열에서 지정된 인덱스에 있는 문자를 반환
word.charAt(0)은 단어의 첫 번째 문자를 가져옴
예: "hello".charAt(0) → "h"

toUpperCase()

문자열의 모든 문자를 대문자로 변환
word.charAt(0).toUpperCase()는 단어의 첫 번째 문자를 대문자로 변환
숫자나 특수 문자에 적용해도 변화가 없음
예: "hello".toUpperCase() → "HELLO"

slice(start, end)

문자열의 일부를 추출하여 새 문자열로 반환
start 인덱스부터 end 인덱스 전까지의 부분을 잘라냄
end를 생략하면 문자열의 끝까지 추출
word.slice(1)은 두 번째 문자부터 끝까지의 부분 문자열을 가져옴
예: "hello".slice(1) → "ello"

toLowerCase()

문자열의 모든 문자를 소문자로 변환
word.slice(1).toLowerCase()는 단어의 두 번째 문자부터 끝까지를 소문자로 만듬
예: "HELLO".toLowerCase() → "hello"

join(separator)

배열의 모든 요소를 연결해 하나의 문자열로 만듬
요소 사이에는 지정된 구분자(separator)가 삽입
.join(" ")는 배열의 각 요소를 공백으로 구분하여 하나의 문자열로 합침
예: ["hello", "world"].join(" ") → "hello world"

참고
https://bedecked-operation-4d1.notion.site/99-13-TIL-JavaScript-sort-method-1d7eb405261e80a6a2b3d3c2186c7fc5
https://velog.io/@deun/99%ED%81%B4%EB%9F%BD-%EC%BD%94%ED%85%8C-%EC%8A%A4%ED%84%B0%EB%94%94-13%EC%9D%BC%EC%B0%A8-TIL-JadenCase-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D

0개의 댓글