[알고리즘] 이상한 문자 만들기

sith-call.dev·2023년 4월 23일
0

알고리즘

목록 보기
9/47
def solution(s):
    word_lst = list(s.split(" "))
    answer_lst = []
    for word in word_lst:
        new_word = []
        # 한 단어를 변환
        for idx in range(len(word)):
            if idx % 2 == 0: # 홀수
                new_word.append(word[idx].upper())
            else: # 짝수
                new_word.append(word[idx].lower())
        answer_lst.append(''.join(new_word))
    
    return ' '.join(answer_lst)
    

소감

공간 복잡도가 높은 풀이였다.
공간 복잡도를 낮추기 위해서 원래 문자열에 바로 접근하여 최적화를 진행할 수 있다.

놓친 점

새로운 변수를 선언하는 기준은 원본 데이터가 아닌 아예 새로운 데이터를 저장해야 할 때이다.
즉, 어떤 정보를 기억해야 하는 지에 따라서 새로운 변수를 선언할 지 말 지 판단할 수 있다.

공간 복잡도를 낮춘 코드

def solution(s):
	idx = 0
    for i in range(len(s)):
    	if s[i] == ' ':
        	idx = 0
            continue
        s[i] = s[i].upper() if cnt % 2 == 0 else s[i].lower()
        idx += 1
    return ''.join(s)
profile
lim (time → ∞) Life(time) = LOVE

0개의 댓글

관련 채용 정보