스택 - 9935번: 문자열 폭발

jisu_log·2025년 6월 21일

알고리즘 문제풀이

목록 보기
51/105


스택 외 다른 방식(ex. replace(), 중간 pop())으로 풀면 시간초과 발생함
-> 스택으로 풀면 O(N)만에 가능

input_str = input()
bomb = input()
bomb_len = len(bomb)

stack = []

for elem in input_str:
    # 스택에 요소 추가
    stack.append(elem)

    if len(stack) >= bomb_len:
        # stack[-n:] : 뒤에서부터 n개 가져오기 [-n, -(n + 1), .., -1]
        # 스택의 맨 뒷부분이 bomb와 일치한다면 제거
        if stack[-bomb_len:] == list(bomb):
            # bomb 길이만큼 스택에서 제거하기
            for _ in range(bomb_len):
                stack.pop()


if len(stack) == 0:
    print("FRULA")
else:
    print("".join(stack))

0개의 댓글