[프로그래머스] JadenCase 문자열 만들기 [연습문제] [python] level2
문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- s는 길이 1 이상인 문자열입니다.
- s는 알파벳과 공백문자(" ")로 이루어져 있습니다.
- 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 )
입출력 예
s return
3people unFollowed me | 3people Unfollowed Me |
for the last week | For The Last Week |
설계 및 구현
접근 방법
변환해야하는 경우의 수를 생각하고 if문을 사용하여 경우에 맞게 변환시켜주면 해결 할 수 있는 문자이다.
이 문제에서의 경우의 수는
1. 제일 첫 문자가 알파벳 소문자일 경우
2. 첫글자가 아닌 문자중 앞의 문자가 공백문자이고 현재문자가 소문자이면 대문자로 변환
3. 앞의 문자가 알파벳이고 현재 문자가 대문자이면 소문자로 변환
이렇게 세가지 경우의 수가 있다.
my_solutin
def solution(s):
# 1 문자 각각에 접근하기위해 list형으로 변환
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. 문자 각각에 접근하기위해 list형으로 변환
2. 제일 첫글자가 소문자이면 대문자로 변환
3. 앞의 글자가 공백이고 현재 문자가 소문자이면 대문자로 변환
4. 앞의 문자가 알파벳이고 대문자이면 소문자로 변환
반응형
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [3차] 압축 [2018 KAKAO BLIND RECRUITMENT] [python] (0) | 2020.11.07 |
---|---|
[프로그래머스] 예상 대진표 [2017 팁스타운] [python] (0) | 2020.11.07 |
[프로그래머스] 행렬의 곱셈 [연습문제] [python] (0) | 2020.11.07 |
[프로그래머스] 내적 [월간 코드 챌린지 시즌1] [python] (0) | 2020.11.07 |
[프로그래머스] 이진 변환 반복하기 [월간 코드 챌린지 시즌1] [python] (0) | 2020.11.07 |