Data Analyst KIM

[프로그래머스Lv0] 코드 처리하기 - 파이썬 본문

데이터 분석/Coding Test

[프로그래머스Lv0] 코드 처리하기 - 파이썬

김두연 2023. 5. 15. 12:26
반응형
 

프로그래머스

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

programmers.co.kr

<문제접근법>

문제를 읽고 이해가 잘 되지 않아서 '입출력 예'를 참고하였다.

code라는 변수에 문자열이 저장되어 있고 그 문자열을 mode가 0,1에 따라서 ret에 저장하는 방식이 다르다고 생각하면 된다. 시작할 때 mode는 0 이고 만약 return하려는 ret의 문자열이 비어 있다면 'EMPTY'를 반환하면 된다.

 

1. "ret"이라는 변수와 mode = 0 이라는 변수를 생성했다. => mode =0 인 인유는 처음 mode는 0이라고 했기 때문에

2. 조건문을 활용하여 code의 길이만큼 code의 인덱스를 사용하여 새로운 조건문을 이용해 mode = 0와 아닐 때를 구분해준다.

3. mode = 0일 때 code[i]가 문자열 "1"이 아니라면 인덱스의 짝수에 해당되는 값을 ret에 저장

4. code[i] = "1"이라면 mode = 1로 저장

5. mode = 0이 아닐 때를 생각해보자.

6. code[i]가 문자열 "1"이 아니라면 인덱스의 홀수에 해당되는 값을 ret에 저장

7. code[i] = "1"이라면 mode = 0로 저장

8. (위 과정을 len(code)만큼 반복)

9. 만약 ret이 빈 문자열이라면 'EMPTY' 출력 / 아니라면 ret을 출력

 

def solution(code):
    ret = ''
    mode = 0
    for i in range(len(code)) :
        if mode == 0 :
            if code[i] != "1":
                if i % 2 == 0 :
                    ret += code[i]
            else : 
                mode = 1 
        else : 
            if code[i] != "1":
                if i % 2 == 1 :
                    ret += code[i]
            else : 
                mode = 0
    if ret == "":
        return "EMPTY"
    else :            
        return ret
반응형