🙌 출처 - 프로그래머스 🙌
문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
입출력 예
s | return |
---|---|
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
- 먼저 문자열을 공백을 기준으로 나누어 주었습니다.
나누어주지 않고도 가능하지만 그렇게되면 어디가 첫번째 문자인지 나눈 로직에 비해 복잡하기 때문에 나누어 주었습니다.- 앞의 첫글자가 영어라면 대문자로 만들고, 첫 글자를 제외한 나머지를 소문자로 만들어 주었습니다.
def solution(s):
s = s.split(' ')
for i in range(len(s)):
s[i] = s[i][:1].upper() + s[i][1:].lower()
return ' '.join(s)
def Jaden_Case(s):
# 함수를 완성하세요
list1 = s.split()
for x, y in enumerate(list1):
list1[x] = y.capitalize()
return ' '.join(list1)
파이썬에는 아래와 같이 대문자로 변환해주는 3가지 메소드가 존재합니다.
# exam 1.
>>> A = 'abcd'
>>> A.upper()
'ABCD'
>>> A.capitalize()
'Abcd'
>>> A.title()
'Abcd'
# exam 2.
>>> B = 'aAbB'
>>> B.upper()
'AABB'
>>> B.capitalize()
'Aabb'
>>> B.title()
'Aabb'
# exam 3.
>>> C = 'a2b3c4'
>>> C.upper()
'A2B3C4'
>>> C.capitalize()
'A2b3c4'
>>> C.title()
'A2B3B4'
# exam 4.
>>> D = 'abc-def gh'
>>> D.upper()
'ABC-DEF GH'
>>> D.capitalize()
'Abc-def gh'
>>> D.title()
'Abc-Def Gh'
exam 1, 2를 보게 되면, capitalize()와 title() 메소드를 동일한 것으로 간주할 수 있습니다.
exam 3에서는 upper()와 title()이 동일한 결과를 보여줬고, exam 4에서는 각각 다른 결과를 보여 주었습니다.
따라서 각 함수는 다음과 같이 정의할 수 있습니다.
Method | 설명 |
---|---|
upper | 주어진 문자열에서 모든 알파벳들을 대문자로 변환시킨다. |
capitalize | 주어진 문자열에서 맨 첫 글자를 대문자로 변환시킨다. |
title | 주어진 문자열에서 알파벳 외의 문자(숫자, 특수기호, 띄어쓰기 등)로 나누어져 있는 영단어들의 첫 글자를 모두 대문자로 변환시킨다. |
대문자 변환과는 다르게 소문자로 변환하는 메소드는 단 하나만 존재합니다.
upper() 메소드와 반대로 모든 문자들을 소문자로 변환해주는 메소드입니다.