[프로그래머스] JadenCase문자열만들기 by Python

Back to Square One·2022년 9월 24일
0

프로그래머스 lv2

목록 보기
1/22

문제

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

제한조건

  1. s는 길이 1 이상 200 이하인 문자열입니다.
  2. s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
  3. 숫자는 단어의 첫 문자로만 나옵니다.
  4. 숫자로만 이루어진 단어는 없습니다.
  5. 공백문자가 연속해서 나올 수 있습니다.

입출력

풀이

문제가 처음 주어졌을 때, 공백 이후 대문자만 봐서 대문자로 입력 된 알파벳을 소문자로 바꿔줘야 한다는 것을 간과하고 있었다.

처음엔 list로 변환해서 공백을 찾은 후 triger를 True로 바꿔주고 변환하고 이런식으로 했는데 너무 코드가 더러워지고 일단 결론적으론 틀렸다..

내장함수인 capitalize()를 이용하여 해결하였고 join()도 string으로 바꿔줄 수 있다는 것을 알았다.

join은?
'구분자'.join(list)
ex) answer = '_'.join(['a','b','c'])
-> answer = "a_b_c" 가 된다.

#문제 풀이 코드
1. 첫번째 코드
def solution(s):
    s = s.split(" ")
    
    for i in range(len(s)):
        s[i] = (s[i][:1].upper() + s[i][1:].lower())
        #첫 글자만 대문자, 그 이후 글자는 lower()
    return ' '.join(s)
    
  2. 두번째 코드
  def solution(s):
    s = s.split(" ")
    for i in range(len(s)):
        s[i] = s[i].capitalize()
        
    return ' '.join(s)
profile
다시 시작하는 개발

0개의 댓글