[programmers] JadenCase 문자열 만들기
문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한사항
- s는 길이 1 이상 200 이하인 문자열입니다.
- s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
- 숫자는 단어의 첫 문자로만 나옵니다.
- 숫자로만 이루어진 단어는 없습니다.
- 공백문자가 연속해서 나올 수 있습니다.
- 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 )
입출력 예
s | return |
---|---|
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
Idea
```python
for i in range(len(s)):
temp = s[i][0].upper() + s[i][1:].lower()
```
처음에 이렇게 짜봤는데 잘 space가 연속적으로 나오는 부분에 대해서 처리가 부족한것 같습니다.
split을 사용할때 주의해야 합니다.
Code
def solution(s):
result = list()
s = s.split(" ")
print(s)
for ch in s:
print(ch)
if ch == "":
result.append(ch)
continue
word = list(ch.lower())
word[0] = word[0].upper()
temp = "".join(word)
result.append(temp)
print(result)
return " ".join(result)
Explain
설명 생략
다른분들의 코드도 보도록 하죠!!
다른 풀이 #1
def solution(s):
answer = ''
s=s.split(' ')
for i in range(len(s)):
# capitalize 내장함수를 사용하면 첫 문자가 알파벳일 경우 대문자로 만들고
# 두번째 문자부터는 자동으로 소문자로 만든다
# 첫 문자가 알파벳이 아니면 그대로 리턴한다
s[i]=s[i].capitalize()
answer=' '.join(s)
return answer
댓글남기기