[Programmers] - JadenCase 문자열 만들기

오동훈·2021년 5월 12일
0

Programmers

목록 보기
38/64
post-thumbnail

1. Problem 📃

🙌 출처 - 프로그래머스 🙌

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

제한 조건

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

입출력 예

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

2. Logic 👨‍🏫

  1. 먼저 문자열을 공백을 기준으로 나누어 주었습니다.
    나누어주지 않고도 가능하지만 그렇게되면 어디가 첫번째 문자인지 나눈 로직에 비해 복잡하기 때문에 나누어 주었습니다.
  2. 앞의 첫글자가 영어라면 대문자로 만들고, 첫 글자를 제외한 나머지를 소문자로 만들어 주었습니다.

3. Code 💻

1. 내가 푼 코드

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)

2. 다른 사람이 푼 코드

def Jaden_Case(s):
    # 함수를 완성하세요
    list1 = s.split()
    for x, y in enumerate(list1):
        list1[x] = y.capitalize()
    return ' '.join(list1) 

4. Feedback 📚

1. 대문자로 변환하기

파이썬에는 아래와 같이 대문자로 변환해주는 3가지 메소드가 존재합니다.

  • s.upper()
  • s.capitalize()
  • s.title()
# 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주어진 문자열에서 알파벳 외의 문자(숫자, 특수기호, 띄어쓰기 등)로 나누어져 있는
영단어들의 첫 글자를 모두 대문자로 변환시킨다.

2. 소문자로 변환하기

대문자 변환과는 다르게 소문자로 변환하는 메소드는 단 하나만 존재합니다.

  • s.lower()

upper() 메소드와 반대로 모든 문자들을 소문자로 변환해주는 메소드입니다.

profile
삽질의 기록들🐥

0개의 댓글