오늘은 프로그래머스 181932번 문제인 "코드 처리하기" Lv.0을 파이썬으로 풀어보도록 하겠습니다.
[프로그래머스] 코드 처리하기 Lv.0 - [파이썬/python]
💻 문제 설명
문자열 code
가 주어집니다. code
를 앞에서부터 읽으면서 만약 문자가 "1"이면 mode
를 바꿉니다. mode
에 따라 code
를 읽어가면서 문자열 ret
을 만들어냅니다.
mode
는 0과 1이 있으며, idx
를 0 부터 code의 길이 - 1
까지 1씩 키워나가면서 code[idx]
의 값에 따라 다음과 같이 행동합니다.
mode
가 0일 때code[idx]
가 "1"이 아니면idx
가 짝수일 때만ret
의 맨 뒤에code[idx]
를 추가합니다.code[idx]
가 "1"이면mode
를 0에서 1로 바꿉니다.
mode
가 1일 때
code[idx]
가 "1"이 아니면idx
가 홀수일 때만ret
의 맨 뒤에code[idx]
를 추가합니다.code[idx]
가 "1"이면mode
를 1에서 0으로 바꿉니다.
문자열 code
를 통해 만들어진 문자열 ret
를 반환(return) 하는 solution 함수를 완성해 주세요.
단, 시작할 때 mode
는 0이며, 반환(return) 하려는 ret
가 만약 빈 문자열이라면 대신 "EMPTY"를 반환(return) 합니다.
🚨 제한사항
- 1 ≤
code
의 길이 ≤ 100,000code
는 알파벳 소문자 또는 "1"로 이루어진 문자열입니다.
🌈 힌트
1. 문자열 순회
for 루프와 enumerate 함수를 사용하여 문자열을 순회하고, 각 문자와 해당 인덱스에 접근하기
2. mode 변경
문자가 '1’일 때 모드를 변경, 이를 위해 불리언 변수를 사용하고, '1’을 만날 때마다 이 변수의 값을 반전시키기
3.문자 추가
현재 모드와 인덱스가 짝수인지 홀수인지에 따라 결과 문자열에 문자를 추가
모드가 0일 때는 짝수 인덱스의 문자를, 모드가 1일 때는 홀수 인덱스의 문자를 추가
4.결과 반환
마지막으로, 결과 문자열이 비어 있지 않으면 그대로 반환하고, 비어 있으면 'EMPTY’를 반환하기
!!!정답 주의!!!
🌟 소스 코드
🏳🌈 테스트 결과
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 나누어 떨어지는 숫자 배열 - Lv.1 (55) | 2023.10.14 |
---|---|
[프로그래머스] 숫자의 표현 - Lv.2 (65) | 2023.10.12 |
[프로그래머스] 올바른 괄호 - Lv.2 (48) | 2023.10.08 |
[프로그래머스] 푸드 파이터 대회 - Lv.1 (46) | 2023.10.08 |
[프로그래머스] 등수 매기기 Lv.0 (53) | 2023.10.06 |