Posts [알고리즘] 프로그래머스 - 짝지어 제거하기
Post
Cancel

[알고리즘] 프로그래머스 - 짝지어 제거하기


문제

문자열에서 같은 알파벳이 2개 붙어 있으면 제거하고, 앞뒤 문자열을 이어 붙인다.
모든 문자를 제거할 수 있으면 1, 아니면 0을 리턴
문자열 s의 길이 : 1,000,000 이하의 자연수
문자열은 모두 소문자로 이루어짐


입출력 예시

sreturn
baabaa1


접근

문자열에서 연속된 두개를 검출 -> 제거만 반복하면 된다.
나는 한글자씩 꺼내어 비교하는 방식으로 해결했다.
새로운 리스트를 하나 만들어 s에서 한글자씩 꺼내어 리스트의 마지막과 비교하여 같으면 지우고, 다르면 리스트에 추가하는 식


코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(s):
    answer = 0
    lst = []
    for i in s:
        if len(lst) != 0:
            if lst[-1] == i:
                lst.pop()
                continue
        lst.append(i)
    if len(lst):
        return 0
    else:
        return 1


This post is licensed under CC BY 4.0 by the author.

[알고리즘] 프로그래머스 - 배상 비용 최소화

[알고리즘] 프로그래머스 - 사전순 부분문자열