본문 바로가기
Algorithm/프로그래머스(Programmers)

[ 파이썬(python) ] 프로그래머스 level1 - 이상한 문자 만들기

by YWTechIT 2021. 4. 2.
728x90

📌 이상한 문자 만들기

각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수를 완성하세요.

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

💡 나의 풀이

s.split(' ')의 중요성을 깨닫게 해준 문제였다. 각 단어는 하나 이상의 공백문자라고 했는데, 문제를 간과하고 s.split()만 사용해서 정답률이 31%로 나왔었다.

for ~ in range(len)), for ~ in enumerate 중 내가 쓰기 편한 코드인 enumerate를 사용했다.

다른사람은 내가 작성한 코드를 한 줄로 표현했다.
이 코드를 한 줄로 표현하니까 코드가 길어져서 나는 눈에 잘 들어오지 않았는데 가독성이 괜찮은가?

[👇🏽 댓글로 의견을 남겨주세요!! 👇🏽]
# 내 코드
def solution1(s):
    s = s.split(' ')
    result = ''
    for word in s:
        for idx, value in enumerate(word):
            if idx % 2 == 0:
                result += value.upper()
            else:
                result += value.lower()
        result += ' '
    return result[:-1]

# 다른사람의 코드
def solution(s):
    return ' '.join([''.join([value.upper() if idx % 2 == 0 else value.lower() for idx, value in enumerate(word)]) for word in s.split()])
반응형

댓글