프로그래머스/Python
[프로그래머스] JadenCase 문자열 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트
우당탕탕 개발자
2023. 7. 3. 12:20
728x90
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명
2. 풀이과정
문자열에서 공백 문자가 연속으로 나올 수도 있으므로 split() 함수를 사용하여 각 단어를 분리할 수 없다. 하여 입력받은 문자열을 계속 그대로 가져가며 바꿔주었다.
- 입력받은 문자열을 모두 소문자로 바꾼 후 각 문자별로 분리하여 리스트로 저장한다. s = list(s.lower())
- 만약 첫 번째 글자가 공백이 아니고 숫자도 아니라면 if (s[0] != ' '): if (not(s[0].isnumeric()))
- 첫 번째 글자는 영문자이고 문자열의 첫 글자이므로 대문자로 바꿔준다. s[0] = s[0].upper()
- 그리고 바꾼 첫 문자를 결과에 더해준다. answer += s[0]
- 첫 문자는 바꿨으므로 이후 문자들을 하나씩 확인해 준다. for i in range(1, len(s))
- 만약 이전 단어가 공백이고 지금 단어가 숫자이면 if (s[i - 1] == ' '): if (s[i].isnumeric())
- 문자 그대로를 결과에 더해준다. answer += s[i]
- 반면에 이전 단어가 공백이지만 지금 단어가 숫자가 아닌 영문자이면 else
- 문자를 대문자로 바꾸어 결과에 더해준다. answer += s[i].upper()
- 이전 단어가 공백이 아니라면 else
- 단어의 시작이 아니므로 문자를 그대로 결과에 더해준다. answer += s[i]
반응형
3. 소스코드
def solution(s):
answer = ''
s = list(s.lower())
if (s[0] != ' '):
if (not(s[0].isnumeric())):
s[0] = s[0].upper()
answer += s[0]
for i in range(1, len(s)):
if (s[i - 1] == ' '):
if (s[i].isnumeric()):
answer += s[i]
else:
answer += s[i].upper()
else:
answer += s[i]
return answer
728x90
반응형