문자열 code가 주어졌을 때, code를 앞에서부터 읽으면서 특정 규칙에 따라 새로운 문자열 answer를 만들어야 합니다.
mode는 0 또는 1의 값을 가지며, 초기값은 0입니다.
code를 왼쪽부터 차례대로 읽으면서 각 인덱스 i에 대해 다음 조건을 수행합니다.
code[i] == "1"이면 → mode를 1로 전환
"1"이 아니고 i가 짝수이면 → answer에 code[i] 추가
code[i] == "1"이면 → mode를 0으로 전환
"1"이 아니고 i가 홀수이면 → answer에 code[i] 추가
최종 문자열 answer가 빈 문자열이면 "EMPTY"를 반환합니다.
| code | result |
|---|---|
| "abc1abc1abc" | "acbac" |
| "11111" | "EMPTY" |
def solution(code):
answer = ''
mode = 0
for i in range(len(code)):
if code[i] == "1":
mode = 1 - mode # mode 전환 (0 ↔ 1)
else:
if mode == 0 and i % 2 == 0:
answer += code[i]
elif mode == 1 and i % 2 == 1:
answer += code[i]
return answer if answer else "EMPTY"
입력: "abc1abc1abc"
mode 변화 및 answer 누적 과정:
| i | code[i] | mode | 조건 통과 여부 | answer |
|---|---|---|---|---|
| 0 | a | 0 | ✅ 짝수 | a |
| 1 | b | 0 | ❌ 홀수 | a |
| 2 | c | 0 | ✅ 짝수 | ac |
| 3 | 1 | 1 | mode 전환 | ac |
| 4 | a | 1 | ❌ 짝수 | ac |
| 5 | b | 1 | ✅ 홀수 | acb |
| 6 | c | 1 | ❌ 짝수 | acb |
| 7 | 1 | 0 | mode 전환 | acb |
| 8 | a | 0 | ✅ 짝수 | acba |
| 9 | b | 0 | ❌ 홀수 | acba |
| 10 | c | 0 | ✅ 짝수 | acbac |
최종 결과: "acbac"