728x90
반응형
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
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 같은 숫자는 싫어 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.03 |
---|---|
[프로그래머스] 올바른 괄호 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.03 |
[프로그래머스] 최솟값 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.03 |
[프로그래머스] 최대공약수와 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.03 |
[프로그래머스] 직사각형 별찍기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.02 |
[프로그래머스] 행렬의 덧셈 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.02 |
[프로그래머스] 최댓값과 최솟값 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.02 |
[프로그래머스] 문자열 다루기 기본 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.02 |