개발공부/algorithm
[SWEA 문제해결 기본: Stack] [Python] 4873.반복문자지우기
so.py
2020. 9. 27. 01:35
문제
- SWEA Stack 4873 D2
- 파이썬
- 문제 링크
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
접근
오랜만에 쉬운 문제가 나왔다.. 스트링의 값들을 stack에 순서대로 append 해준 후 스택의 가장 상위 부분에 같은 스트링 값이 있는 경우는 pop 해준다!
세가지 경우를 처리해주면 된다.
1. 스택이 비어있을 경우
2. 스택의 가장 탑 아이템이 입력 값과 같을 경우
3. 스택의 가장 탑 아이템이 입력 값과 같지 않을 경우
나의 코드
T = int(input())
for i in range(T):
lst = input()
stack = []
for l in range(len(lst)):
if len(stack) == 0: # stack이 비어있을 때는 입력 값을 append 해준다
stack.append(lst[l])
elif stack[-1] != lst[l]: # stack의 가장 위의 스트링 값이 입력 값과 같지 않을 때
stack.append(lst[l]) # 입력 값을 스택에 append 해준다
elif stack[-1] == lst[l]: # stack의 가장 위의 스트링 값이 입력 값과 일치 할 때
stack.pop() # 해당 값을 stack에서 제거해준다.
print('#{} {}'.format(i+1, len(stack)))