소품집

[python] 프로그래머스 Lve1. 이상한 문자 만들기 본문

코딩 테스트/Python

[python] 프로그래머스 Lve1. 이상한 문자 만들기

sodayeong 2020. 10. 8. 15:34

문제 설명

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

제한 사항

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

입출력 예

입출력 예 설명

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

def toWeirdCase(s):
    answer = ''
    s_li = s.lower().split(" ")
    for s in s_li:
        for k, v in enumerate(s):
            if k % 2 == 0:
                v = v.upper()
            answer += v
        answer += " "
    return answer[:-1]
  1. 먼저 공백을 기준으로 문자열을 나눈 뒤, 모두 소문자로 변환해줍니다.
  2. 그 뒤, s_li로 하나씩 문자열에 있는 값을 s 로 받게 한 뒤
  3. 인덱스값이 필요하기 때문에 enumerate 함수를 사용했습니다.
  4. 그 때 짝수 번째에 위치한다면 대문자로 바꿔줍니다.
  5. 이미 처음에 모든 문자열을 소문자로 바꿨기 때문에 else 문을 사용하지 않아도 됩니다.
  6. 처음에 만들어 둔 answer에 문자열을 담습니다.
  7. 과정을 마치면 다시 ' '(공백)을 기준으로 띄어줍니다.
  8. [:-1]을 한 이유는 마지막에도 공백이 생기기 때문이고, 마지막을 제외한 모든 값을 출력해주도록 합니다.
728x90
Comments