프로그래머스, 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(' ')를 해주면 정상적으로 답을 얻어낼 수 있다.
- 이 조건을 살피지 못해서 계속 실패하는 구문들이 떠서 골머리를 앓다가 찾아낸 풀이 방법이다.
'개발 > Algorithm' 카테고리의 다른 글
[리트코드] Implement Stack using Queues(python) (0) | 2021.06.22 |
---|---|
[리트코드] Valid Parentheses(python) (0) | 2021.06.17 |
[리트코드] Odd Even Linked List(python) (0) | 2021.06.15 |
[리트코드] Swap Nodes in Pairs(python) (0) | 2021.06.15 |
[프로그래머스] 최솟값 만들기(python) (0) | 2021.06.14 |