문제
- SWEA Stack 4873 D2
- 파이썬
- 문제 링크
접근
오랜만에 쉬운 문제가 나왔다.. 스트링의 값들을 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)))
'개발공부 > algorithm' 카테고리의 다른 글
[BOJ] [Python] 백준 자료구조 Deque - 2164: 카드2 (2) | 2020.10.06 |
---|---|
[BOJ] [Python] 백준 자료구조 - 10773: 제로 (0) | 2020.10.06 |
[SWEA 문제해결 기본: Stack] [Python] 4869.종이접기 (0) | 2020.09.22 |
[SWEA 문제해결 기본: Stack] [Python] 4866.괄호검사 (0) | 2020.09.19 |
[SWEA 문제해결 기본: String] [Python] 4861.회문 (1) | 2020.09.18 |