본문 바로가기
Python/알고리즘

[COS PRO 1급 #2-10] 0들을 0으로 만들기

by 포푸리 (POPOOLY) 2023. 2. 21.
반응형

문제설명

0과 1로만 이루어진 문자열에서 연속해서 붙어있는 0들을 하나의 0으로 줄이려 합니다.

예를 들어 "101100011100" 이란 문자열은 "101101110"으로 만들면 됩니다.

0과 1로만 이루어진 문자열 s가 매개변수로 주어질 때, 연속해서 붙어있는 0들을 하나의 0으로 줄인 문자열을 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _**한 줄**_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.

매개변수 설명

0과 1로만 이루어진 문자열 s가 solution 함수의 매개변수로 주어집니다.
* s의 길이는 1 이상 1,000 이하입니다.

return 값 설명

연속해서 붙어있는 0들을 하나의 0으로 줄인 문자열을 return 해주세요.

예시

| s              | return      |
|----------------|-------------|
| "101100011100" | "101101110" |

예시 설명

1은 줄이지 않으며, 연속해서 붙어있는 0만 하나의 0으로 줄이면 됩니다.

문제 코드

def solution(s):
    s += '#'
    answer = ""
    for i in range(len(s)):
        if s[i] == '0' and s[i + 1] != '0':
            answer += '0'
        else:
            answer += '1'
    return answer

풀이

def solution(s):
    s += '#'
    answer = ""
    for i in range(len(s)):
    	# 01이면 answer에 0 추가하고 00이면 answer에 추가안함
        if s[i] == '0' and s[i + 1] != '0':
            answer += '0'
        # 1이면 answer에 1 추가
        elif s[i] == '1':
            answer += '1'
    return answer

댓글