본문 바로가기
프로그래머스/Python

[프로그래머스] JadenCase 문자열 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 7. 3.
728x90
반응형

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 설명

2. 풀이과정

문자열에서 공백 문자가 연속으로 나올 수도 있으므로 split() 함수를 사용하여 각 단어를 분리할 수 없다. 하여 입력받은 문자열을 계속 그대로 가져가며 바꿔주었다.

 

  1. 입력받은 문자열을 모두 소문자로 바꾼 후 각 문자별로 분리하여 리스트로 저장한다. s = list(s.lower())
  2. 만약 첫 번째 글자가 공백이 아니고 숫자도 아니라면 if (s[0] != ' '): if (not(s[0].isnumeric()))
  3. 첫 번째 글자는 영문자이고 문자열의 첫 글자이므로 대문자로 바꿔준다. s[0] = s[0].upper()
  4. 그리고 바꾼 첫 문자를 결과에 더해준다. answer += s[0]
  5. 첫 문자는 바꿨으므로 이후 문자들을 하나씩 확인해 준다. for i in range(1, len(s))
  6. 만약 이전 단어가 공백이고 지금 단어가 숫자이면 if (s[i - 1] == ' '): if (s[i].isnumeric())
  7. 문자 그대로를 결과에 더해준다. answer += s[i]
  8. 반면에 이전 단어가 공백이지만 지금 단어가 숫자가 아닌 영문자이면 else
  9. 문자를 대문자로 바꾸어 결과에 더해준다. answer += s[i].upper()
  10. 이전 단어가 공백이 아니라면 else
  11. 단어의 시작이 아니므로 문자를 그대로 결과에 더해준다. answer += s[i]
반응형

3. 소스코드

def solution(s):
    answer = ''
    
    s = list(s.lower())

    if (s[0] != ' '):
        if (not(s[0].isnumeric())):
            s[0] = s[0].upper()
    
    answer += s[0]
       
    for i in range(1, len(s)):
        if (s[i - 1] == ' '):
            if (s[i].isnumeric()):
                answer += s[i]
            else:
                answer += s[i].upper()
        else:
            answer += s[i]
    
    return answer
728x90
반응형