https://programmers.co.kr/learn/courses/30/lessons/77886
스택을 사용할 수 있는가를 물어보는 문제이다.
110이 스택에 쌓이게되면 꺼내서 개수를 센다.
그리고 스택의 어느 위치에 넣어야할지를 고민하면 된다.
0이나오는 바로 뒤에 110을 넣어야한다.
def solution(s):
answer = []
for e in s:
idx = 0
cnt = 0
ans = ''
stack = []
for x in e:
stack.append(x)
if len(stack) >= 3:
if ''.join(stack[len(stack)-3:]) == '110':
stack.pop()
stack.pop()
stack.pop()
cnt += 1
for i in range(len(stack)):
if stack[i] == '0':
idx = i + 1
if cnt == 0:
answer.append(''.join(stack))
else:
ans += ''.join(stack[0:idx])
ans += '110'*cnt
ans += ''.join(stack[idx:])
answer.append(ans)
return answer