def mysolution(arrangement): arr = list(arrangement) stack = [] piece = 0 answer = 0 for i in range(len(arr)): if arr[i] == '(': stack.append(arr[i]) elif arr[i] == ')': if stack[len(stack) - 2] == '(': piece += len(stack) - 1 else: piece += 1 stack.pop() print(piece) return answer def solution(arrangement): arr = enumerate(arrangement) stack = [] piece = 0 for idx, ele in arr : if ele == '(' : stack.append(idx) # ??? else: if stack[-1] + 1 == idx: # when it is a match, laser # list[-1] means latest index in the list stack.pop() piece += len(stack) # exactly. its flawless now else : # when it is the end of a pipe stack.pop() piece += 1 return piece arrangement = "()(((()())(())()))(())" print(solution(arrangement))
# i made a mistake coding python like C. shame on me!!
댓글
댓글 쓰기