[파이썬] str.capitalize() [프로그래머스 JadenCase 문자열 만들기]

2023. 2. 8. 10:30프로그래밍/파이썬

반응형

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

제한조건

 

위 문제를 푸는 도중, 절반의 Test case에서 오답이 나는 것을 확인. 문제의 제한조건을 체크 해 보니  '공백문자가 연속해서' 나올 수 있습니다. 라는 조건이 있었고, 처음에는 연속해서 나오더라도, 정제를 해야하는 걸까 ? 하고 고민했지만, 그건 아닌 것 같아서 바로 단어단위로 쪼개는 것 라인을 수정

 

s.split() --> s.split(" ")

 

이렇게 고치는 것만으로도 코드가 해결된다. 하지만 다른사람의 코드를 확인하다 보니, 좀더 간결하게 쓸 수 있는 메서드가 있는것을 확인하였다. 말 그대로 str에서 첫 글자만 대문자로 변환해주는 것이니, 직접 인덱스 번호로 .lower() / .upper()를 쓰는거보다 훨씬 간결해진다.

 

Python Documentation - str.capitalize()

 

코드 전문 첨부

# 핵심 : 공백문자가 연속으로 나올 경우 공백도 줄임 없이 살아있어어함.
# 1. Str - Capitalize 내장함수 사용 시 첫글자만 대문자로 변경! 

def solution(s):
    res = []
    s = s.split(" ") # 공백문자가 연속해서 나올 경우를 고려 
    
    for word in s : 
        res.append(word.capitalize()) # ['For', '', 'The', '', 'Last', '', 'Week']
    
    return " ".join(res)
반응형