코테13) 이상한 문자 만들기

gyu·2024년 4월 9일

Algorithm

목록 보기
14/45

📝 문제설명

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

제한 사항
문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
s return
"try hello world" "TrY HeLlO WoRlD"

내 풀이:

def solution(s):
    result = ""
    for i , word in enumerate(s.split(" ")):
        for j in range(len(word)):
            result += word[j].upper() if j % 2 == 0 else word[j].lower()
        result += " "
    return result[:-1]

1) 문자열은 space로 나누어진 단어들로 구성되어 있다
=>먼저 단어만 가져오기위해 split()을 사용 #try #hello #world
2) 단어별로 짝/홀수 인덱스를 구분해야 한다
=> 짝수면 .upper() 홀수면 .lower()를 사용해서 만든다
3) 다시 단어를 넣고 공백을 넣어줘야 한다
=> result += " "을 하면 마지막단어를 넣고도 공백이 들어가서 실패로 뜬다
==> 그래서 리턴할때 마지막문자를 빼고 하기위해 [:-1]슬라이싱을 해줬다


혹시 for loop를 하나만 사용해서 풀 수는 없나 생각해봤는데 아무래도 2개 필요한거 같았고 enumerate를 안쓰고 word만 가져왔어도 됐을 거란 생각이 든다.

profile
#TechExplorer 🚀 Curious coder exploring the tech world, documenting my programming journey in a learning journal

0개의 댓글