6039 : 문자열 폭발
•시간제한: 2.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
문자열 $S$와 폭발 문자열 $P$가 주어집니다. 문자열 폭발은 다음과 같이 작동합니다:
- 문자열 $S$에 폭발 문자열 $P$가 포함되어 있다면, 모든 $P$가 동시에 사라지고 남은 문자열이 합쳐집니다.
- 문자열이 합쳐진 결과에서 새로운 폭발 문자열 $P$가 생겨날 수 있으며, 연쇄적으로 폭발이 계속 일어납니다.
폭발이 더 이상 일어나지 않는 최종 문자열을 구하십시오.
[제약 조건]
• 원본 문자열 $S$ 길이: $1 \le |S| \le 1{,}000{,}000$
• 폭발 문자열 $P$ 길이: $1 \le |P| \le 36$ (소문자/숫자)
- 문자열 $S$에 폭발 문자열 $P$가 포함되어 있다면, 모든 $P$가 동시에 사라지고 남은 문자열이 합쳐집니다.
- 문자열이 합쳐진 결과에서 새로운 폭발 문자열 $P$가 생겨날 수 있으며, 연쇄적으로 폭발이 계속 일어납니다.
폭발이 더 이상 일어나지 않는 최종 문자열을 구하십시오.
[제약 조건]
• 원본 문자열 $S$ 길이: $1 \le |S| \le 1{,}000{,}000$
• 폭발 문자열 $P$ 길이: $1 \le |P| \le 36$ (소문자/숫자)
입력 설명
첫째 줄에 원본 문자열 $S$가 주어집니다. (길이 $\le 1,000,000$)
둘째 줄에 폭발 문자열 $P$가 주어집니다. (길이 $\le 36$, $P$는 중복되지 않는 소문자/숫자로 구성됨)
둘째 줄에 폭발 문자열 $P$가 주어집니다. (길이 $\le 36$, $P$는 중복되지 않는 소문자/숫자로 구성됨)
출력 설명
모든 폭발이 끝난 후 남은 최종 문자열을 출력합니다. 만약 남은 문자열이 없다면
FRULA를 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
mirkovnizahatabaklava
baklava
출력 예시
COPY
복사되었습니다!
복사되었습니다!
mirkovnizahata
도움
매 문자마다 문자 단위로 스택에 push하면서, 스택 끝의 자른 문자열의 크기가 폭발 문자열의 크기와 같고 내용이 일치하는지 비교하고, 매칭되면 폭발 문자열의 크기만큼 스택에서 pop합니다.