[프로그래머스] JadenCase [연습문제] [python] Level2

 

문제 설명

 

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

 

 

설계 및 구현

 

접근 방법

 

1. 첫번째 문자 일때는 소문자일 경우 대문자로 변환시켜주고

2. 첫번째 문자가 아니고 그 전 문자가 공백 일 경우 소문자일 경우 대문자로 변환

3. 전 순서의 문자가 알파벳이고 현재 문자가 대문자일 경우 소문자로 변환 

이렇게 세가지의 조건문으로 구현하여 해결 할 수 있는 문제이다.

 

my_solution

def solution(s):
    # 1
    s = list(s)
    
    for i in range(len(s)):
        # 2 
        if i == 0:
            if s[i].islower():
                s[i] = s[i].upper()
        # 3        
        elif s[i-1] == " " and s[i].islower():
            s[i] = s[i].upper()
        # 4    
        elif s[i-1].isalpha() and s[i].isupper():
            s[i] = s[i].lower()
            
    return "".join(s)

1. 문자열에 접근하기 위해 리스트자료형으로 변환시킨다.

2. 문자열의 첫번째 글자이고 소문자일 경우 대문자로 변환

3. 전 순서의 문자가 공백이고 현재 문자가 소문자일 경우 대문자로 변환

4. 전 순서의 문자가 알파뱃이고 현재문자가 대문자라면 소문자로 변환

마지막으로 변환을 마친 리스트를 문자열로 합쳐 반환시켜 해결 할 수 있는 문제이다.

 

isalpha()   =   문자가 알파벳인지 확인하는 함수

isupper()   =   문자가 대문자인지 확인하는 함수

islower()   =   문자가 소문자인지 확인하는 함수

upper()     =   문자를 대문자로 변환하는 함수

lower()      =   문자를 소문자로 변환하는 함수

반응형

+ Recent posts