[프로그래머스] Lv1 - 이상한 문자 만들기

김멉덥·2023년 7월 7일
0

알고리즘 공부

목록 보기
26/171
post-thumbnail

문제

프로그래머스 연습문제


코드 구현

def making_weird_str(word):
    w = ''
    for i in range(len(word)):
        if(i % 2 == 0):
            w += word[i].upper()    # 짝수 인덱스 -> 대문자
        else:
            w += word[i].lower()    # 홀수 인덱스 -> 소문자

    return w

def solution(s):
    answer = ''

    splited_list = list(map(str, s.split(" ")))   # 문자열에서 공백을 기준으로 쪼개어 리스트로 변환

    count = 0
    for splited_word in splited_list:      # 단어들이 들어있는 리스트를 돌며 각 단어를 함수로 변형하기
        weird_word = making_weird_str(splited_word)
        answer += weird_word        # 정답에 추가

        # 공백 관련 작업 처리
        # 출력할 정답 answer 맨 끝에 공백을 추가하지 않기 위해 마지막 단어를 변환할 경우를 제외하고는 모두 중간에 띄어쓰기용 공백 추가
        count += 1
        if(count != len(splited_list)):
            answer += ' '

    return answer

if __name__ == '__main__':
    print(solution("try hello world"))
    print(solution(" try hello world  d"))

풀이

  • split() 이 아닌 split(" ") 으로 해야하는 이유

테스트 케이스 중에 만약 앞, 뒤, 중간에 공백이 추가로 껴있는 문자열이 주어진다면, 정답에는 해당 공백도 같이 포함되어야 한다.
try hello world dTrY HeLlO WoRlD D

split() 으로 처리하게 되면 앞, 뒤, 연속의 공백은 무시하고 쪼개지게 되기 때문에 split(” “)으로 처리해주어 모든 공백들을 포함하여 리스트를 만들어준 뒤 진행해야 한다.

ex)


profile
데굴데굴 뚝딱뚝딱 개발기록

0개의 댓글