JadenCase 문자열 만들기

Polla·2023년 2월 27일
0

programmers

목록 보기
49/58
post-thumbnail

프로그래머스 lv2 JadenCase 문자열 만들기 파이썬



💡 문제


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


🥔🥔 해결


생각

1. split()은 빈칸이 여러개이면 사용이 힘들것 같다.
2. .upper(), .lower() 을 사용해보자


코드


def solution(s):
    answer = ''
    for i in s:
        if answer == '': # 첫 단어 시작
            answer = i.lower()
            answer = i[0].upper()
            continue
        if i == ' ': # 공백이면 바로 공백 적용
            answer += i
        else: # 현재는 공백이 아닐경우
            if answer[-1] == ' ': # 바로 전이 공백
                if i.isdigit():
                    answer += i # 숫자면 그대로 적용
                else:
                    answer += i.upper() # 영어일 경우 대문자
            else:
                answer += i.lower()
    return answer

처음엔 split()을 사용하기 힘들겠다고 판단해서,
전을 체크한 후 그것이 공백일 경우 .upper() 처리해주는 방식을 생각했다. 해결은 했지만 맘에는 안들었다🥲🥲🥲


다른 풀이


그 후 다른 분들의 코드를 보던 중, 딱 내가 구현하고 싶던 방법을 구현 하신 분을 봤다.

def solution(s):
    answer = ''
    tmp_arr = s.split(' ')
    for word in tmp_arr:
        for idx in range(len(word)):
            if idx == 0:
                answer += word[0].upper()
            else:
                answer += word[idx].lower()
        answer += ' '
    return answer[:-1]

왜 split()을 사용하기 힘들거라고 단정지었던 걸까....
그냥 바로 뒤에 ' '을 붙여주면 되는것을...



오늘의 TMI


번아웃이 온건지... 방학내내 정말 열심히 알고리즘을 연습했는데,
어제부터 의욕도, 알고리즘도 풀리질 않았다... 조금 눈물나는 하루..
그래도 열심히 해야지🥲🥲

profile
트러블 슈팅 Blog => https://polla.palms.blog/home

0개의 댓글