프로그래머스 JadenCase 문자열 만들기 코드 및 해설 (파이썬)

2021. 6. 1. 15:42algorithm

반응형

https://programmers.co.kr/learn/courses/30/lessons/12951

 

코딩테스트 연습 - JadenCase 문자열 만들기

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건

programmers.co.kr

 

공백이 항상 스페이스 하나인게 아닐 수도 있는 걸 뒤늦게 깨달은 문제였습니다..

 

우선 정규표현식을 이용해 단어를 구분하는 공백들을 seps에 저장합니다.
이후 공백으로 split한 단어 하나당 첫 문자만 대문자로 변환한 후, 아까 구한 seps에서 해당되는 공백을 뒤에 더해줍니다.

 

import re 

def solution(s):
    answer = ''
    # 단어를 구분하는 공백들을 리스트로 
    # word의 개수와 똑같이 맞추기 위해 빈 문자열을 맨 뒤에 추가 
    seps = re.findall('\s{1,}', s) + ['']

    for word, sep in zip(s.split(), seps):
        # 첫 문자만 대문자, 나머지는 소문자로 변환하고 해당 공백을 더함 
        answer += word[0].upper() + word[1:].lower() + sep

    return answer
반응형