문제 풀이
각 단어의 짝수 번째 문자를 대문자로, 홀수 번째 문자를 소문자로 바꾸는 문제입니다. 얼핏 보면 for 문을 순회하면서 짝수 번째 항목을 대문자로, 홀수 번째 항목을 소문자로 바꾸면 될 것 같지만 문자를 바꾸는 기준은 단어입니다. 즉, 공백을 기준으로 단어가 나뉘기 때문에 순회할 때 공백을 인식해서 처리해야 합니다.
공백이 문제라면 split()을 사용해 문자열을 단어별로 분리시켜 해당 단어별로 순회 작업을 거치면서 대문자와 소문자를 바꿔도 됩니다. 하지만 조금만 더 단순하게 생각해봅시다. 분명 ‘각 단어의 짝수/홀수 번째에 따라’라는 조건이므로 카운트 변수를 하나 만든 다음 진행하다가 공백을 만나면 카운트 변수를 초기화하면 됩니다. 어쨌든 새 단어가 나올 때 0번째부터 시작한다고 판단할 수 있으면 나머지는 정상적으로 동작할 것입니다.
코드 작성
1. 카운트 변수를 선언합니다.
홀수/짝수를 구별하기 가장 쉬운 방법은 그냥 변수를 하나 더 만들어주는 것입니다. 1차원적인 대응이지만 확실한 방법입니다.
def solution(s):
s = list(s)
cnt = 0
문자열을 수정하려면 배열로 먼저 변환해야 한다는 사실도 잊지 맙시다.