알고리즘 풀이/프로그래머스

[Level1] 이상한 문자 만들기

mhko411 2021. 1. 21. 14:21
728x90

문제

입력된 문자열은 공백을 기준으로 여러 개의 단어로 구성되어 있다.

단어의 인덱스가 짝수이면 대문자로 홀수면 소문자로 변경하여 반환하도록 해보자.

 

문자열 전체의 인덱스가 아닌 각 단어의 인덱스로 홀/짝을 구분하며 0은 짝수처럼 변경한다.

 

입력

"try hello world"

 

출력

"TrY HeLlO WoRlD"


1. 각 단어의 인덱스를 구분할 idx를 선언하고 0으로 초기화한다.

2. 입력된 문자열로 for문을 돌린다.

3. 빈 칸일때 idx를 0으로 초기화하고 answer에 공백을 추가한다. 그리고 continue를 하여 아래의 코드는 실행하지 않도록 한다.

4. 각 단어의 홀수면 소문자로 변경하고 idx를 1증가, 짝수면 대문자로 변경하고 idx를 1증가한다.

5. 최종적으로 answer를 출력한다.

 

def solution(S):
    answer = ''
    
    idx=0
    for s in S:
        if s==' ':
            idx=0
            answer+=' '
            continue
        if idx%2:
            answer+=s.lower()
            idx+=1
        else:
            answer+=s.upper()
            idx+=1
    return answer