본문 바로가기

PS/백준

[BOJ] 백준 9935 문자열 폭발 (Swift)

반응형

문제

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

 

9935번: 문자열 폭발

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

www.acmicpc.net

풀이

스택 자료구조를 사용해서 풀이할 수 있는 문제입니다.

문자열을 하나씩 스택에 넣어줍시다.
스택의 마지막 문자열폭발 문자열의 마지막 문자열과 같을 때, 스택에 폭발 문자열이 있는지 확인해줍시다.
스택의 사이즈가 폭발 문자열의 길이보다 크거나 같은 경우에만 확인해주어야 합니다. (index error 방지)

검사해야 하는 인덱스의 범위는 스택의 크기 - 폭발 문자열 크기 부터 스택의 크기까지가 됩니다.
폭발 문자열과 같다면 폭발 문자열의 크기만큼 pop 해주어야 합니다.

소스코드

후기

스택을 사용해서 괄호검사하는 것과 비슷한 문제였습니다.
스택의 마지막 부분이 폭발 문자열과 같은지 확인해주는게 핵심인 문제인 것 같습니다.

또한 스택에 폭발 문자열이 있는지 확인을 할 때,
매번 확인하지 않고, 스택의 마지막 문자열과 폭발 문자열이 같을 때 확인해주어서 시간복잡도를 조금 줄일 수 있었습니다.

반응형