프로그래머스 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()을 사용하기 힘들거라고 단정지었던 걸까....
그냥 바로 뒤에 ' '
을 붙여주면 되는것을...
번아웃이 온건지... 방학내내 정말 열심히 알고리즘을 연습했는데,
어제부터 의욕도, 알고리즘도 풀리질 않았다... 조금 눈물나는 하루..
그래도 열심히 해야지🥲🥲