티스토리 뷰

반응형

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

 

9935번: 문자열 폭발

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

www.acmicpc.net

 


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 자료 구조
  • 문자열
  • 스택

 


 

⊙ 문제 접근 과정

 

입력 문자열과 폭발 문자열을 입력받는다.

입력 문자열을 차례대로 검사한 후 stack에 넣는다.

검사할 때, 현재 글자가 폭발 문자열의 마지막 글자와 일치하면 그 앞의 문자들도 일치하는지 확인한다.

만약 같을 시,  pop

 

반복....

 

마지막에 stack에 값이 있는지 없는지 확인하고 있으면 있는 문자열 출력

없으면 FRULA 출력

 


 

⊙ 문제 풀이

 

inputString = input()
deleteString = input()

lastChar = deleteString[-1]
stack = []
size = len(deleteString)

for i in inputString:
    stack.append(i)
    if i == lastChar and ''.join(stack[-size:]) == deleteString:
        del stack[-size:]
    
if stack:
    print(''.join(stack))
else:
    print("FRULA")

 


⊙ 결과

 


⊙ 마무리

 

 

NONE

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함