코딩테스트

[백준][문자열] 문자열 폭발

pythaac 2021. 8. 10. 02:30
BAEKJOON Online Judge(BOJ) 문제입니다.

https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

 

문제

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

 

9935번: 문자열 폭발

첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모

www.acmicpc.net

 

내가 작성한 코드

None
  • 다양한 시도를 했지만 타임아웃
    • 폭발 문자열이 in이면 replace
    • 폭발한 문자열 잘라서 나머지 문자열에 대해 재귀
    • 반복문으로 탐색시 첫 문자가 마지막으로 탐색된 곳부터 다시 탐색

 

다른 사람이 작성한 코드

s = input()
bomb = input()

stk = []
last_char = bomb[-1]

for c in s:
    stk.append(c)
    if c == last_char and ''.join(stk[-len(bomb):]) == bomb:
        del stk[-len(bomb):]

if stk:
    print(''.join(stk))
else:
    print("FRULA")
  • 정말 오래 고민했는데 허무하게도 매우 간결하다

 

기억해야할 것

  • prefix만 생각했는데, suffix로 이렇게 쉽게 풀 줄 몰랐다
  • 문자열을 풀 때 항상 두 가지 모두 고려하자