문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- s는 길이 1 이상인 문자열입니다.
- s는 알파벳과 공백 문자(" ")로 이루어져 있습니다.
- 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫 번째 입출력 예 참고 )
입출력 예
문제 풀이
def solution(s):
s = s.split(' ')
l = []
for i in range(len(s)):
if len(s[i]) >= 1:
l.append(s[i][0].upper())
l.append(s[i][1:].lower()+' ')
if l[-1] == ' ':
return (''.join(l[:-1]))
else:
return ''.join(l).rstrip()
Level 1의 이상한 문자 만들기가 떠올랐던 문제
입력받은 문자열 s를 공백으로 나눈 리스트 s와 JadenCase로 바꾼 문자열을 담을 빈 리스트 l을 만들었다.
s의 길이만큼 반복하는(단어 수 만큼 반복하는) for 문을 만들었다.
- 만약 단어의 길이가 1보다 크면 첫 문자를 대문자로 바꿔 l에 추가한다.
- 이후 나머지 문자들은 소문자로 바꾼 후 공백을 더해 l에 추가한다.
여기까지 하면 원래 문자열에서 마지막 단어에 공백이 하나 추가된 상태다(ex l[-1] == 'e ')
👉 출력시 ''.join(l).rstrip()으로 오른쪽 공백을 제거
그런데, 문제에서는 원래 문자열의 끝에 공백이 있었던 경우도 생각해줘야 한다🤦♂️
👉 l[-1] == ' '인 경우 이를 제거하고 출력 = 원래 문자열의 끝 공백 수만큼 출력
다른 풀이
def solution(s):
s = s.split(' ')
for i in range(len(s)):
s[i]=s[i].capitalize()
return ' '.join(s)
다 풀고 알게 된 파이썬 내장 함수 capitalize() ㅎ
capitalize 함수는 주어진 문자열에서 맨 첫 문자를 대문자로, 나머지를 소문자로 바꾼다.
첫 문자가 알파벳이 아니라면 그대로 반환한다.
이제부터 열심히 써야지🙋♂️
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] Level 1 키패드 누르기 | 파이썬 (0) | 2021.07.29 |
---|---|
[프로그래머스] Level 2 시저 암호 | 파이썬 (0) | 2021.07.16 |
[프로그래머스] Level 1 자릿수 더하기/이상한 문자 만들기/약수의 합 (0) | 2021.07.06 |
[프로그래머스] Level 1 제일 작은 수 제거하기/정수 제곱근 판별/정수 내림차순으로 배치하기/자연수 뒤집어 배열로 만들기 (0) | 2021.07.05 |
[프로그래머스] Level 1 짝수와 홀수/최대공약수와 최소공배수/콜라츠 추측/하샤드 수 (0) | 2021.06.29 |