https://www.acmicpc.net/problem/9935
목적지까지 걸어가는 길은 굉장히 다양하다. 이 문제의 경우 도처에 힌트들과 도구들을 직접 작성해놓고, 빙글빙글 돌아가다가 실패를 잔뜩 맛봤다.
사무실 pc에 첫 시도의 노력이 묻어있는데 호환의 문제로 개인 노트북으로 따로 글을 쓰는 중이라 완성된 코드만 올릴 수 있을 것 같다.
# PYTHON CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import sys
s1 = list(map(str, sys.stdin.readline().rstrip()))
s2 = list(map(str, sys.stdin.readline().rstrip()))
stk = []
m = len(s2)
for i in s1:
stk.append(i)
if i == s2[-1]:
if stk[-m:] == s2:
del stk[-m:]
if stk:
print(''.join(stk))
else:
print('FRULA')
|
cs |
포인트가 폭발하는 문자열의 맨 앞이 아니라 맨 뒤라는 걸 캐치하는 것까지는 잘했는데, 인덱스를 처리하는 과정에서 조금 복잡하게 경우를 나누어 처음에는 이렇게 간결하게 코드를 작성하지 못했다.
그리고 for문의 del함수는 사실 생각하지 못했다. 인덱스를 이용해 리스트를 자르려고 했는데 그 소소한 차이가 시간 초과를 불러오더라...
이제 본 것 같은 스택 문항은 슬슬 몸에 익는다. 이것이 발전...?
'백준 > 스택' 카테고리의 다른 글
[Python] 백준, 3986(스택) (0) | 2021.08.06 |
---|---|
[Python] 백준, 1935(스택) (0) | 2021.08.02 |
[Python] 백준, 6549(스택) (0) | 2021.08.01 |
[Python] 백준, 1918(스택) (0) | 2021.07.29 |
[Python] 백준, 17298(스택) (0) | 2021.07.28 |