스택(Stack)을 활용해 현재 문자가 스택의 맨 위(top) 문자와 같으면 pop, 다르면 push를 반복

그 전 접근이 자꾸 틀린 이유는 자꾸 현재 문자를 stack에다 밀어 넣고 그 다음 문자와 비교하려고 했기 때문 (i-1 or i+1등 사용 index 복잡해짐) ‘while문 안 써도 되지 않을까’ 까지는 왔었는데… stack에 넣기 전에 같고 다름을 판별해야 최대한 간결하게 생각하자…

빈 스택의 경우 분기 나누어서 접근


T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
    # ///////////////////////////////////////////////////////////////////////////////////
    string = input()
    stack = []
    # 스택(Stack)을 활용해 현재 문자가 스택의 맨 위(top) 문자와 같으면 pop, 다르면 push를 반복하세요
    # 틀린 이유는 자꾸 현재 문자를 stack에다 밀어넣고 그 다음 문자와 비교하려고 했기 때문 (i-1등 사용)
	# 스택에 뭐 없으면 그냥 현재 문자 추가
    for i in range (len(string)): 
        #print (stack)
        if stack: # append 먼저 하고 pop 2번 하는 방법은 stack [-1] 값이 현재 값이 되므로 안 됨
            if stack[-1] == string[i]:
                stack.pop()
            else:
                stack.append(string[i])
        else:
            stack.append(string[i])
    answer = len(stack)         
 
    print (f'#{test_case} {answer}')
        t_case} {answer}')