[프로그래머스] JadenCase [연습문제] [python] Level2
문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
설계 및 구현
접근 방법
1. 첫번째 문자 일때는 소문자일 경우 대문자로 변환시켜주고
2. 첫번째 문자가 아니고 그 전 문자가 공백 일 경우 소문자일 경우 대문자로 변환
3. 전 순서의 문자가 알파벳이고 현재 문자가 대문자일 경우 소문자로 변환
이렇게 세가지의 조건문으로 구현하여 해결 할 수 있는 문제이다.
my_solution
def solution(s):
# 1
s = list(s)
for i in range(len(s)):
# 2
if i == 0:
if s[i].islower():
s[i] = s[i].upper()
# 3
elif s[i-1] == " " and s[i].islower():
s[i] = s[i].upper()
# 4
elif s[i-1].isalpha() and s[i].isupper():
s[i] = s[i].lower()
return "".join(s)
1. 문자열에 접근하기 위해 리스트자료형으로 변환시킨다.
2. 문자열의 첫번째 글자이고 소문자일 경우 대문자로 변환
3. 전 순서의 문자가 공백이고 현재 문자가 소문자일 경우 대문자로 변환
4. 전 순서의 문자가 알파뱃이고 현재문자가 대문자라면 소문자로 변환
마지막으로 변환을 마친 리스트를 문자열로 합쳐 반환시켜 해결 할 수 있는 문제이다.
isalpha() = 문자가 알파벳인지 확인하는 함수
isupper() = 문자가 대문자인지 확인하는 함수
islower() = 문자가 소문자인지 확인하는 함수
upper() = 문자를 대문자로 변환하는 함수
lower() = 문자를 소문자로 변환하는 함수
반응형
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 짝지어 제거하기 [2017 팁스타운] [python] (0) | 2020.09.28 |
---|---|
[프로그래머스] N개의 최소공배수 [연습문제] [python] (0) | 2020.09.27 |
[프로그래머스] 피보나치 수 [연습문제] [python] (0) | 2020.09.26 |
[프로그래머스] 최솟값 만들기 [연습문제] [python] (0) | 2020.09.25 |
[프로그래머스] 최댓값과 최솟값 [연습문제] [python] (0) | 2020.09.25 |