본문 바로가기
코딩테스트/프로그래머스

JadenCase 문자열 변환하기, 문제점 해결과 학습

by 코드스니펫 2024. 4. 6.
반응형

JadenCase 문자열 변환하기, 문제점 해결과 학습

 

programmers logo

 

프로그래밍을 하다 보면, 때로는 예상치 못한 문제에 부딪히곤 합니다. 오늘은 문자열을 JadenCase로 변환하는 과제를 해결하면서 겪었던 문제와 그 해결 과정에 대해 이야기해보려 합니다.

 

 

JadenCase 문자열 변환하기

 

문제 정의

JadenCase란 모든 단어의 첫 글자만 대문자로, 나머지 알파벳은 소문자로 쓰는 문자열 형태를 말합니다. 예를 들어, "hello world"는 JadenCase로 변환하면 "Hello World"가 됩니다. 여기에는 몇 가지 조건이 있습니다.

 

  • 문자열은 알파벳, 숫자, 공백 문자로 이루어져 있습니다.
  • 숫자는 단어의 첫 문자로만 나올 수 있습니다.
  • 공백 문자는 연속해서 나올 수 있습니다.

 

이러한 조건을 만족하며 주어진 문자열을 JadenCase로 변환하는 solution 함수를 작성하는 것이 목표였습니다.

 

 

초기 접근 방법

처음에는 문자열을 공백 기준으로 나누어 각 단어의 첫 글자를 대문자로 변환하는 방식을 선택했습니다. 이 과정에서 각 단어를 다시 문자 배열로 나누고, 첫 글자를 대문자로 변환한 뒤 나머지 문자열과 합치는 로직을 구현했습니다.

 

function solution(s) {
    const arr = s.split(" ");
    let result = '';

    for(let i of arr){
        if(i.length === 0) {
            result += " ";
            continue;
        }

        result += (i[0].toUpperCase() + i.substr(1).toLowerCase()) + " ";
    }

    return result.trim();
}

 

 

발생한 문제점

하지만 이 방법은 연속된 공백 처리에 문제가 있었습니다. " for the  what 1what " 같은 입력값에서 연속된 공백이 적절히 반영되지 않았습니다. 이는 문자열을 공백으로 나눌 때, 연속된 공백이 하나의 공백으로 처리되기 때문입니다.

 

 

해결책

문제를 해결하기 위해 문자열 전체를 소문자로 변환한 뒤, 각 문자를 순회하면서 이전 문자가 공백인 경우 현재 문자를 대문자로 변환하는 방식을 선택했습니다. 이 과정에서 문자열 앞에 임시 공백을 추가해 첫 글자가 알파벳일 때도 대문자로 변환될 수 있도록 했습니다.

 

function solution(s) {
    const s_array = (" " + s.toLowerCase()).split("");
    for (let i = 1; i < s_array.length; i++)
        if (s_array[i - 1] === " " && s_array[i] !== " ")
            s_array[i] = s_array[i].toUpperCase();
    return s_array.join("").trim();
}

 

이 방식을 통해 연속된 공백도 올바르게 처리할 수 있었고, 모든 문자열 조건을 만족하는 JadenCase 변환을 성공적으로 수행할 수 있었습니다.


 

프로그래밍 과제를 해결하면서, 예상치 못한 문제에 부딪힐 때가 많습니다. 이럴 때 중요한 것은 문제의 원인을 정확히 파악하고, 더 나은 해결책을 찾아내는 것입니다. 이번 과제를 통해, 문자열 처리와 관련된 문제 해결 능력뿐만 아니라, 프로그래밍에 있어 유연한 사고의 중요성을 다시 한번 깨달을 수 있었습니다.

 

▼ 다른 코딩테스트 문제풀이 ▼

 

 

코딩테스트 최소 힙(MinHeap)을 활용한 "더 맵게" 문제 해결법

코딩테스트 최소 힙(MinHeap)을 활용한 "더 맵게" 문제 해결법 프로그래밍 문제 해결에 있어 데이터 구조의 선택은 효율성을 결정짓는 중요한 요소입니다. "더 맵게" 문제는 스코빌 지수를 조작하

lemonlog.tistory.com

 

 

선형구조 큐(Queue) 기본 원리와 종류 (단순 큐, 순환 큐, 우선순위 큐)

선형구조 큐(Queue) 기본 원리와 종류 (단순 큐, 순환 큐, 우선순위 큐) 데이터 구조는 컴퓨터 과학에서 데이터를 효율적으로 관리하고 처리하는 기초를 형성합니다. 특히, 선형 구조에 속하는 큐

lemonlog.tistory.com