Lv0. 코드 처리하기 (Python)
링크: https://school.programmers.co.kr/learn/courses/30/lessons/181932
내가 작성한 코드
def solution(code):
mode = 0
ret = []
for idx, ch in enumerate(code):
# enumerate() -> 왼쪽부터 코드를 하나씩 보며 (현재 위치(idx), 현재문자(ch))를 동시에 사용
# idx: 홀/짝 판단
# ch: 1인지 아닌지 판단
if ch == '1': # 문자가 1인지 확인
mode = 1 - mode # 1을 만날 때마다 mode가 0 <-> 1 로 바뀜
continue # 다음 문자로 넘어감. mode만 바꾸고 다음 글자 확인
if idx % 2 == mode: # mode=0이면 짝수 인덱스, mode=1이면 홀수 인덱스만 선택
ret.append(ch) # 현재 mode에 따라 문자를 결과에 포함시키기
answer = ''.join(ret) # ret 리스트에 모아둔 문자들을 하나의 문자열로 합침
if answer == '': # answer에 아무 문자도 추가되지 않았다면 “EMPTY” 반환
return "EMPTY"
return answer
새로 배운 코드
def solution(code):
answer = ''
mode = 0
# 문자열의 인덱스 0부터 하나씩 확인
for i in range(len(code)):
if code[i] == '1': # 현재 문자가 ‘1’이면
mode ^= 1 # XOR 연산을 이용해 mode를 0 <-> 1로 토글
# (^: 비트 XOR 연산자 -> 두 값이 다르면 1, 같으면 0)
# (값을 반대로 바꾸는 토글로 쓸 수 있음)
continue # ‘1’은 결과에 추가하지 않음
else:
if i % 2 == mode: # 위 주석 참고
answer += code[i] # 결과 문자열 뒤에 현재 문자 추가
return answer if answer else 'EMPTY'
'코딩테스트' 카테고리의 다른 글
| [25.12.17 코테(Python)]-최빈값 구하기 (0) | 2025.12.17 |
|---|---|
| [25.12.16 코테(Python)]-피타고라스의 정리&삼총사 (0) | 2025.12.16 |
| [25.12.12 코테(Python)]-아이스 아메리카노&핸드폰 번호 가리기&영어 끝말잇기 (0) | 2025.12.12 |
| [25.12.11 코테(Python)]-배열의 원소 삭제하기&수박수박수박수박수? (0) | 2025.12.11 |
| [25.12.10 코테(Python)]-나머지가 1이 되는 수 찾기 (0) | 2025.12.10 |