규도자 개발 블로그

[프로그래머스/Level1/파이썬3(python3)] 이상한 문자 만들기 본문

알고리즘/풀이

[프로그래머스/Level1/파이썬3(python3)] 이상한 문자 만들기

규도자 (gyudoza) 2020. 4. 13. 19:46

[프로그래머스/Level1/파이썬3(python3)] 이상한 문자 만들기

문제

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

제한사항

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

입출력 예

sreturn
"try hello world""TrY HeLlO WoRlD"

입출력 예 설명

"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY" "HeLlO" "WoRlD" 를 리턴합니다.

풀이

def solution(s):
    answer = ''
    for word in s.split(' '):
        temp_word = ''
        for i in range(len(word)):
            if i % 2:
                temp_word += word[i].lower()
            else:
                temp_word += word[i].upper()
        answer += temp_word
        answer += ' '
    return answer[:-1]

설명

내가 이 글(split()과 split(' ')의 차이)을 쓰게 된 계기가 된 문제이다. 3번 줄의 split(' ')을 맨 처음엔 split()으로 했었는데 계속 오답처리가 되길래 다른 답들을 찾아보니 저 안에 ' '를 넣어놨더라. 두 함수의 기능차이가 있는줄 몰랐던 나는 띠용 했고 실험해보니 바로 차이가 있는 걸 발견하였으나 다른 물음이 떠올랐는데, 아니 그럼 이 문제에선 공백이 여러 개 들어왔을 때 공백도 각각 처리돼야 맞는 답으로 치는건가 하는 물음이 연달아 떠올랐다. 정답검사를 하는 문제와 답들을 한번 살펴보고 싶은 문제이다.

Comments