728x90
JadenCase 문자열 만들기
문제 설명 & 입출력 예
문제 발생
def solution(s):
answer = ''
for i in range(len(s)):
if 97<=ord(s[i])<=122:
if s[i-1]==" " or i==0:
answer+=chr(ord(s[i])-32)
else:
answer+=s[i]
elif 65<=ord(s[i])<=90:
if s[i-1]!=" ":
answer+=chr(ord(s[i])+32)
else:
answer+=s[i]
else:
answer+=s[i]
return answer
코드 실행은 되는데, 채점이 안된다(제발 테스트 케이스 알려줬으면 좋겠어)
코드를 봐도 뭐가 문제인지 모르겠어서 그냥 솔루션을 보게 되었다.
capitalize() & title() 함수 사용법
def solution(s):
answer = ''
s=s.split(' ')
for i in range(len(s)):
# capitalize 내장함수를 사용하면 첫 문자가 알파벳일 경우 대문자로 만들고
# 두번째 문자부터는 자동으로 소문자로 만든다
# 첫 문자가 알파벳이 아니면 그대로 리턴한다
s[i]=s[i].capitalize()
answer=' '.join(s)
return answer
def solution2(s):
return s.title()
capitalize() : 단어에 적용하며, 첫 글자가 알파벳인 경우, 대문자로 바꿈
title() : 문장에 적용하며, 문장 안의 단어 중, 첫 글자를 모두 대문자로 바꿈
* title() 함수의 문제점 : 3people -> 3People 같이 첫 글자가 알파벳이 아니면, 가장 처음 나오는 알파벳을 바꿈
따라서, capitalize() 함수 사용
Solution
def solution(s):
answer = ''
s=s.split(' ')
for i in range(len(s)):
s[i]=s[i].capitalize()
answer=' '.join(s)
return answer
728x90
'Python > 코딩테스트' 카테고리의 다른 글
[프로그래머스/python] 코딩테스트 연습 Lv.2 (7월 첫 번째 주 2) (0) | 2023.07.08 |
---|---|
[프로그래머스/python] 코딩테스트 연습 Lv.2 (7월 첫 번째 주 1) (0) | 2023.07.04 |
[프로그래머스/python] 코딩테스트 연습 Lv.1 (6월 다섯 번째 주 1) (0) | 2023.06.25 |
[프로그래머스/python] 코딩테스트 연습 Lv.1 (6월 네 번째 주 2) (0) | 2023.06.24 |
[프로그래머스/python] 코딩테스트 연습 Lv.1 (6월 네 번째 주 1) (0) | 2023.06.20 |