Contents
- 문제 설명
[제한사항]
[입출력 예] - 알고리즘 분석
[나의 풀이]
[다른 사람의 풀이]
문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다.
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한사항
- s는 길이 1 이상인 문자열입니다.
- s는 알파벳과 공백문자(" ")로 이루어져 있습니다.
- 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫 번째 입출력 예 참고 )
입출력 예
S | return |
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
알고리즘 분석
- 나의 풀이
def solution(s):
answer, is_first = '', True
for char in s:
if is_first and not char.isspace(): # 단어의 첫글자이고 공백이 아닐 경우
is_first = False
answer += char.upper() # char을 대문자로 바꿔서 answer에 더함
else:
if char.isspace(): # char이 공백일 경우
is_first = True
answer += char.lower() # char을 소문자로 바꿔서 answer에 더함
print(answer)
return answer
- 다른 사람의 풀이
# 현재는 오답
# "3people"를 "3People"로 바꾸기 때문에 정답이 아니다.
def solution(s):
return s.title()
# 그 외에 한줄짜리 정답
def solution(s):
return ' '.join([word.capitalize() for word in s.split(" ")])
이 문제를 푸는데 사용되는 함수는 총 3가지입니다.
- upper
- title
- capitalize
모두 위의 코드에서 확인할 수 있는데,
문제의 특성상 어울리지 않은 title을 제외한
나머지 함수로 문제를 풀 수 있습니다.
세 함수의 차이점을 잘 비교한 블로그가 있으니 참고하시길 바랍니다.
Python 알파벳 대문자로 변환하기
파이썬에서 "ABC"와 "abc"는 다른 문자열(string)이다. 데이터 분석을 하다보면 같은 샘플이름이지만 한...
blog.naver.com
코딩테스트 연습 - JadenCase 문자열 만들기
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건
programmers.co.kr
'프로그래머스(Python) > Level2' 카테고리의 다른 글
[프로그래머스] '짝지어 제거하기' 알고리즘 풀이 - Python (0) | 2020.10.23 |
---|---|
[프로그래머스] 'N의 최소공배수' 알고리즘 풀이 - Python (0) | 2020.10.23 |
[프로그래머스] '행렬의 곱셈' 알고리즘 풀이 - Python (0) | 2020.10.22 |
[프로그래머스] '피보나치 수' 알고리즘 풀이 - Python (0) | 2020.10.22 |
[프로그래머스] '최솟값 만들기' 알고리즘 풀이 - Python (0) | 2020.10.22 |