프로그래머스: 코드 처리하기 (Python3)

SIMPLY_DAILY·2025년 4월 16일

1. 문제

문자열 code가 주어질때, 아래 조건에 따라 문자열 code를 통해 만들어진 문자열 ret를 return 하는 solution 함수 완성하기

2. 조건

code를 앞에서부터 읽으면서 만약 문자가 "1"이면 mode를 바꾸고, mode에 따라 code를 읽어가면서 문자열 ret을 만들어낸다.

mode는 0과 1이 있으며, idx를 0 부터 code의 길이 - 1 까지 1씩 키워나가면서 code[idx]의 값에 따라 다음과 같이 행동한다.

1. mode가 0일 때

  • code[idx]가 "1"이 아니면 idx가 짝수일 때만 ret의 맨 뒤에 code[idx] 추가
  • code[idx]가 "1"이면 mode를 0에서 1로 바꿈

2. mode가 1일 때

  • code[idx]가 "1"이 아니면 idx가 홀수일 때만 ret의 맨 뒤에 code[idx] 추가
  • code[idx]가 "1"이면 mode를 1에서 0으로 바꿈

단, 시작할 때 mode는 0이며, return 하려는 ret가 만약 빈 문자열이라면 대신 "EMPTY"를 return 해야 한다.

제한사항: 1 ≤ code의 길이 ≤ 100,000이고, code는 알파벳 소문자 또는 "1"로 이루어진 문자열이다.

3. 출력 예시

code의 각 인덱스 i에 따라 다음과 같이 mode와 ret가 변하는 규칙이므로,
마지막에는 문자열 "acbac"를 return해야 한다.

4. 코드 구현

처음에는 해당 문제를 이해하는데 꽤 시간이 걸렸다😅
오랫동안 고민하며 서치를 통해 알게 된 continue를 이용한 방식으로 문제풀이 접근을 시도했다.

파이썬 기초연습 중이기 때문에 리스트에 어떻게 담기는지 하나씩 확인하기 위해 code를 리스트로 변환한 후 문제를 풀었으나, 사실상 리스트 변환 과정 없이 code를 result=''으로 정의한 후 문자열로 바로 return하는 것이 더욱 간결한 코드가 될 것이다.

✅ continue
반복문(for 또는 while) 안에서 사용되며, 아래에 있는 나머지 코드를 실행하지 않고 곧바로 다음 반복으로 넘어가도록 만든다.
(즉, 반복문에서 현재 반복을 건너뛰고 다음 반복으로 진행 가능)

break와의 차이점❓
continue는 해당 구간을 스킵하고 다음 루프로 넘어간다면, break는 특정 조건에 도당할 경우 반복을 완전히 종료시킨다.

https://school.programmers.co.kr/learn/courses/30/lessons/181932

0개의 댓글