Jaden Case 문자열 만들기
코딩테스트 연습 > 연습문제 > Jaden Case 문자열 만들기
https://programmers.co.kr/learn/courses/30/lessons/12951
# 문제 본문
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열.
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수 구현.
# 제한 사항
- s는 길이 1 이상인 문자열입니다.
- s는 알파벳과 공백문자(" ")로 이루어져 있습니다.
- 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 )
#00
s = " 3people unFollowed me "
#01
s = s.lower()
#02
answer=''
for i in range(len(s)):
if s[i]==' ':
answer+=s[i]
elif s[i-1]==' ' and s[i].isalpha():
answer+=s[i].upper()
else:
answer+=s[i]
#03
answer
문자열의 첫번째 원소가 알파벳인 경우와 문자열의 s 가 공백인 경우를 고려하는 중 런타임 에러가 발생한 것으로 판단됩니다.
이에 answer의 initial value를 빈 문자열이 아닌, 공백 하나를 포함한 문자열을 설정하고, 마지막에 answer의 두번째 원소부터 retrun 함으로써 위의 문제를 해결하였습니다.
# 2nd trial
# Input value
string = "for the last week"
answer = ' ' # set initial value ' ', to filter easily
# process
# step 1.
for s in string.lower(): # Change lowercase
if s.isalpha() and answer[-1] == ' ': # if s is alpha and answer[-1] is ' '
answer+=s.upper() # Change uppercase
else:
answer+=s # else, just add s
answer[1:] # return answer[1:] because answer's initial value is ' '
파이썬에서는 문자열을 대문자로 바꾸는 3가지 방법이 있습니다.
string.upper() # 주어진 문자열에서 모든 알파벳들을 대문자로 변환
string.capitalize() # 주어진 문자열에서 맨 첫 글자를 대문자로 변환
string.title() # 주어진 문자열에서 알파벳 이외의 문자(숫자,특수기호,띄어쓰기 등)로 나누어져 있는 영단어들의 첫 글자를 모두 대문자로 변환
위의 3가지 방법 중, Jaden Case 문자열 변환은 capitalize()함수를 사용하여 쉽게 해결할 수 있습니다.
# Input value
string = "for the last week"
# Output value
' '.join([s.capitalize() for s in string.split(' ')])
#01 Using upper(),lower()
def solution(string):
answer = ' '
string=string.lower()
for s in string:
if s.isalpha() and answer[-1] == ' ':
answer+=s.upper()
else:
answer+=s
return answer[1:]
#02 Using capitalize()
def solution(s):
return ' '.join([word.capitalize() for word in s.split(" ")])