본문 바로가기

개발/Algorithm

[프로그래머스] JadenCase 문자열 만들기(python)

프로그래머스, JadenCase 문자열 만들기

 

TL;DR

  • 문자열

문제 분석

1. 주어진 문자열 s를 JadenCase로 바꾼 문자열을 리턴하는 함수를 완성하라.
2. s는 길이가 1 이상인 문자열이다.
3. s는 알파벳과 공백문자로 이루어져 있다.
4. 첫 문자가 영문이 아닐때는 이어지는 영문은 소문자로 쓴다.

 

- 1 : 해결해야 하는 문제에 대해서 설명하고 있다.

- 2 : 문제에서 주어지는 입력 조건의 제한에 대해서 설명하고 있다.

- 3 ~ 4 : 문제를 해결할 때 참고해야 하는 조건에 대해서 설명하고 있다.

입출력 형태

입출력 예시

 

- 주어진 입력을 구성하고 있는 단어들의 첫 번째 글자를 대문자로 바꾼 결과를 반환한다.

풀이

def solution(s):
    return ' '.join([word.capitalize() for word in s.split(' ')])

 

- 풀이 자체는 매우 간단하다.

    - 주어진 문자열을 공백문자(' ')를 기준으로 각 단어별로 나눈다.

    - 각 단어의 첫 글자를 대문자로 바꿔주는 capitalize() 함수를 통해 바꿔준다.

    - 문자열로 묶어 반환한다.

- 하지만 주의해야 하는 사항이 있는데 바로 `s.split()`가 아닌 `s.split(' ')`를 사용해야 한다.

    - 문제 조건 3번에서 공백문자(' ')도 문자를 이루고 있는 주요 요소 중 하나이기 때문에 공백문자 또한 포함될 수 있도록 명시해줘야 한다.

    - ^를 공백문자라고 가정하고 다음의 테스트 케이스를 살펴보자.

      - "HelLo^myName^^is^^Kim^"

      - 이 문제의 답은 "Hello^Myname^^Is^^Kim^"가 되어야 한다.

      - 만약 split 함수 내에 인자를 주지 않을 경우 "Hello^Myname^Is^Kim"이 되기 때문에 오답처리된다.

      - split(' ')를 해주면 정상적으로 답을 얻어낼 수 있다.

- 이 조건을 살피지 못해서 계속 실패하는 구문들이 떠서 골머리를 앓다가 찾아낸 풀이 방법이다.

반응형