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

chanyeong kim·2021년 12월 2일
0

프로그래머스

목록 보기
24/51

📩 -->문제설명

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

제한사항

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

입출력 예

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

💡 solution(사용언어: python)

def solution(s):
    return ' '.join(map(lambda x:x[0].upper()+x[1:].lower() if x else x, s.split(' ')))

👉 설명

  • s.split(' ')으로 문자열을 나누어준다(문자열이 연속된 공백이 있어도 ' 'join하기 때문에 상관없음
  • if x else x를 통해 공백이 아니면, x:x[0].upper()+x[1:].lower()를 해준다.
  • 마지막으로 join으로 감싸주면서 출력한다.
def solution(s):
    return ' '.join(list(map(lambda x:x[0].upper()+x[1:].lower(), s.split(' '))))

처음에는 이렇게 했었는데, 연속된 공백이 존재하고 있어 한참 걸렸다..

결과

다른 풀이

def Jaden_Case(s):
    return s.title()
  • 이거 지금은 안되는데, 내장함수 title이 있다는 것을 상기시켜줬다.
  • title은 각 어절의 첫글자만 대문자로 바꾸어 준다.
def Jaden_Case(s):
    # 함수를 완성하세요
    answer =[]
    for i in range(len(s.split())):
        answer.append(s.split()[i][0].upper() + s.split()[i].lower()[1:]) 
    return " ".join(answer)

한줄 코딩아닌 클래식!

🌈 느낀 점

다른 준비할 게 많아서 찔리긴 하지만, 당분간은 쉬운거 풀자..ㅎㅎ

출처: 프로그래머스

오류가 있으면 댓글 달아주세요🙂

0개의 댓글