[프로그래머스] JadenCase 문자열 만들기 [연습문제] [python] level2

 

문제 설명

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

제한 조건

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

입출력 예

s                                                                                                       return

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

 

설계 및 구현

 

접근 방법

변환해야하는 경우의 수를 생각하고 if문을 사용하여 경우에 맞게 변환시켜주면 해결 할 수 있는 문자이다.

이 문제에서의 경우의 수는

1. 제일 첫 문자가 알파벳 소문자일 경우

2. 첫글자가 아닌 문자중 앞의 문자가 공백문자이고 현재문자가 소문자이면 대문자로 변환

3. 앞의 문자가 알파벳이고 현재 문자가 대문자이면 소문자로 변환

이렇게 세가지 경우의 수가 있다.

 

my_solutin

def solution(s):
    # 1 문자 각각에 접근하기위해 list형으로 변환
    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. 문자 각각에 접근하기위해 list형으로 변환

    2. 제일 첫글자가 소문자이면 대문자로 변환

    3. 앞의 글자가 공백이고 현재 문자가 소문자이면 대문자로 변환

    4. 앞의 문자가 알파벳이고 대문자이면 소문자로 변환   

반응형

+ Recent posts