9935. 문자열 폭발

2024. 1. 21. 01:14·Algorithm/BaekJoon Review

https://www.acmicpc.net/problem/9935

이해

  • 문자열을 완전 탐색을 통해 더했다가 뺐다가 할 수 있지만, 최대 길이가 1,000,000 이므로 뺄때, 붙일 때 길이만큼 탐색하고, 제거/더해줌 반복되므로 시간 초과가 날 수 있음
  • Stack 구조의 append/pop 연산을 통해 중복되는 반복을 제거하고, 최대 폭발 문자열의 길이만큼만 반복하게 하여 시간을 줄일 수 있음

구현

  1. Stack으로 이용할 리스트 생성
  2. Stack에 문자열 하나씩 저장하며, 길이가 폭발 문자열 길이 보다 길어졌을 때부터 폭발 문자열이 stack 내부에 있는지 확인 → 마지막 길이만큼만 확인하면 모두를 확인할 수 있음
    1. 만약 폭발 문자열이 있다면 pop 연산을 통해 제거
    2. 없다면 계속해서 append 연산을 통해 Stack 내부에 문자열을 추가

코드

# 9935 문자열 폭발
import sys
input = sys.stdin.readline


def solution(S:str, boom:str) -> str:
    # stack 구조 활용
    stack = []
    # 여러번 호출하는 boom 길이 미리 저장
    len_b = len(boom)
    # 반복 -> stack저장 -> 마지막 len_b까지 문자열이 폭탄이면 pop -> stack 저장
    for i in range(len(S)):
        stack.append(S[i])
        if len(stack) >= len_b and stack[-len_b:] == list(boom):
            for _ in range(len_b):
                stack.pop()
    # 있으면 문자열 없으면 FRULA 출력
    return "".join(stack) if stack else "FRULA"


if __name__ == "__main__":
    print(solution(input().strip(), input().strip()))
반응형

'Algorithm > BaekJoon Review' 카테고리의 다른 글

12851. 숨바꼭질 2  (2) 2024.01.31
1697. 숨바꼭질  (2) 2024.01.29
1149. RGB거리  (0) 2024.01.15
15684. 사다리 조작  (1) 2024.01.12
1932. 정수 삼각형  (0) 2024.01.11
'Algorithm/BaekJoon Review' 카테고리의 다른 글
  • 12851. 숨바꼭질 2
  • 1697. 숨바꼭질
  • 1149. RGB거리
  • 15684. 사다리 조작
devSeongKu
devSeongKu
#FE_개발일지 #일상 #알고리즘
    • 분류 전체보기 (60)
      • Algorithm (41)
        • 개념 (8)
        • SW Expert Academy Review (22)
        • BaekJoon Review (11)
      • WEB (12)
        • HTML (5)
        • CSS (2)
        • JavaScript (1)
        • Django (4)
      • CS (3)
        • Git (2)
      • PROJECT (2)
        • 에러핸들링 (2)
      • 기타 (2)
  • 반응형
  • devSeongKu
    From The Present
    devSeongKu
  • 전체
    오늘
    어제
  • 링크

    • Github
  • 인기 글

  • 태그

    Baekjoon
    Python
    스프린트프론트엔드8기
    알고리즘
    SWEA
    취업까지달린다
    Algorithm
    SW Expert Academy
    코드잇스프린트
    html
  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
devSeongKu
9935. 문자열 폭발
상단으로

티스토리툴바