본문 바로가기
알고리즘/프로그래머스 PS

[프로그래머스][Level 2][Python] JadenCase 문자열 만들기

by 빛밤하늘 2021. 7. 17.
반응형

밑의 링크는 프로그래머스에서의 문제 링크입니다.

 

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

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

programmers.co.kr

 

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# 문자열 s가 매개변수로 주어집니다.
# 길이가 1 이상이며, 알파벳과 공백문자(" ")로 이루어져 있습니다.
def solution(s):
    # JadenCase 문자열 결과를 저장할 변수를 선언합니다.
    result = ''
    # 한 단어를 임시로 저장할 변수를 선언합니다.
    word = ''

    # 문자열 s에서 한 문자씩 반복합니다.
    for char in s:
        # 현재 문자가 공백문자(" ")인 경우
        if char == ' ':
            # word에 문자열이 저장되어 있다면
            if word != '':
                # word의 맨 앞 글자를 대문자로 만들어줍니다. 
                word = word[0].upper() + word[1:]
                # word의 값을 result에 넣어줍니다.
                result += word
                # word를 빈 문자열로 만듭니다.
                word = ''

            # result에 공백문자를 넣어줍니다.
            result += ' '
        # 현재 문자가 공백문자가 아니라면
        else:
            # 현재 문자를 소문자로 만들고 word에 넣어줍니다.
            word += char.lower()

    # 반복문이 끝나고 word에 단어가 저장되어 있는 경우
    if word != '':
        # word의 맨 앞 글자를 대문자로 만들어줍니다.
        word = word[0].upper() + word[1:]
        # result에 word의 값을 넣어줍니다.
        result += word

    # JadenCase가 된 문자열을 반환합니다.
    return result

결과

 

이번 문제를 봤을 때는 쉽게 풀 수 있을거라 자만했습니다.

그런데 여러 테스트 케이스에서 런타임 오류가 떠서 뭐가 문제인지 생각하는데 한참 걸렸습니다...

곰곰이 생각하다 단어 사이의 공백문자가 여러 개인 경우에 오류가 뜨는 것을 확인하고

제대로 제출하고 나서 질문하기를 살펴보니 실제로 공백문자가 여러 개인 경우를 고려해야 한다는 글이 있었습니다...

프로그래머스는 Level 2 연습문제부터 만만치 않네요...

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글