알고리즘/프로그래머스 - 코딩 기초 트레이닝

Day5 - 코드 처리하기

젤리의it 2023. 5. 26. 10:29

프로그래머스 문제: https://school.programmers.co.kr/learn/courses/30/lessons/181932

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 풀이

def solution(code):
    answer = ''
    mode = 0
    if len(code) == 0 or not code: 
        return "EMPTY"  # "EMPTY"인 경우 바로 반환
    
    for index, word in enumerate(code):     
        if word == "1":
            mode = 0 if mode == 1 else 1
        elif mode == 0 and index % 2 == 0:
            answer = answer + word
        elif mode == 1 and index % 2 != 0:
            answer = answer + word
    if len(answer) == 0 or not answer: 
        return "EMPTY"  # "EMPTY"인 경우 바로 반환
    return answer

 

1. 문자열에서 1을 만나면 모드를 바꾼다(토글)

2. 모드가 0이면 인덱스가 짝수인 경우, 모드가 1이면 인덱스가 홀수인 경우를 맨 뒤에 추가하기

* 12, 13번 테스트에서 자꾸 오류 발생

=> 테스트케이스에 "11111111111" 만 있을 경우를 추가해서 출력해보니 ""로 출력됨

=> 혹시나해서 EMPTY를 넣어보니까 바로 성공했습니다!