프로그래머스(Python)/Level2

[프로그래머스] 'JadenCase 문자열 만들기' 알고리즘 풀이 - Python

Jinomad 2020. 10. 23. 15:36

Contents

  1. 문제 설명

    [제한사항]

    [입출력 예]
  2. 알고리즘 분석 

    [나의 풀이]

    [다른 사람의 풀이]

 

문제 설명

 

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다.

문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

 

 

제한사항

  • s는 길이 1 이상인 문자열입니다.
  • s는 알파벳과 공백문자(" ")로 이루어져 있습니다.
  • 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫 번째 입출력 예 참고 )

 

입출력 예

S return
"3people unFollowed me" "3people Unfollowed Me"
"for the last week" "For The Last Week"



알고리즘 분석

 

  • 나의 풀이
def solution(s):
    answer, is_first = '', True
    for char in s:
        if is_first and not char.isspace(): # 단어의 첫글자이고 공백이 아닐 경우 
            is_first = False 
            answer += char.upper() # char을 대문자로 바꿔서 answer에 더함
        else:
            if char.isspace(): # char이 공백일 경우 
                is_first = True
            answer += char.lower() # char을 소문자로 바꿔서 answer에 더함 
    print(answer)
    return answer

 

 

  • 다른 사람의 풀이
# 현재는 오답 
# "3people"를 "3People"로 바꾸기 때문에 정답이 아니다. 
def solution(s):
    return s.title()
    
# 그 외에 한줄짜리 정답 
def solution(s):
    return ' '.join([word.capitalize() for word in s.split(" ")])

 

이 문제를 푸는데 사용되는 함수는 총 3가지입니다. 

 

  • upper 
  • title 
  • capitalize 

모두 위의 코드에서 확인할 수 있는데, 

문제의 특성상 어울리지 않은 title을 제외한 

나머지 함수로 문제를 풀 수 있습니다. 

 

세 함수의 차이점을 잘 비교한 블로그가 있으니 참고하시길 바랍니다. 

 

Python 알파벳 대문자로 변환하기

파이썬에서 "ABC"와 "abc"는 다른 문자열(string)이다. 데이터 분석을 하다보면 같은 샘플이름이지만 한...

blog.naver.com

 

 

 

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

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

programmers.co.kr