처음에 이 문제를 접하고 C언어로 알고리즘을 풀 때처럼 아스키코드를 이용해서 대소문자 확인 및 변환을 해주려고 했는데 파이썬에는 islower,isupper,upper,lower과 같은 내장함수가 있다는 것을 알게 되었다.
def solution(s):
ls = list(s)
#소문자라면
if (ls[0]).islower():
#대문자로 변환
ls[0] = (ls[0]).upper()
for i in range(1,len(ls)):
#이전문자가 공백이고
if ls[i-1] == ' ':
#소문자라면
if (ls[i]).islower():
#대문자로 변환
ls[i] = (ls[i]).upper()
else:
#이전문자가 공백이 아닌데 대문자라면
if (ls[i]).isupper():
#소문자로 변환
ls[i] = (ls[i]).lower()
answer = ''.join(ls)
return answer
알고리즘이 어렵다기보단 파이썬의 어떤 내장함수를 사용하여 문제를 해결해줄지 생각하는부분이 중요했던 문제 같다,
ls 를 str(ls)를 통해 문자열로 변경해주려고 했는데 이렇게 해주어도 리스트 형태로만 출력이 돼서
answer = ''.join(ls)
를 통해서 문자열로 변경해주었다.