Programming_prob/BaekJoon
[백준] 10799번 쇠막대기
YongArtist
2020. 9. 16. 22:56
이 문제는 그림에 답이 있었다. 분류 기준만 잘 세우면 풀 수 있는 문제
두 괄호가 어떤 것을 의미하는지 의미에 따라 어떻게 분류할 것인지 판단하면 쉽게 풀 수 있는 문제다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | """ BOJ 쇠막대기(Iron bar) problem """ __author__ = 'hanayong' from sys import stdin stack = [] ans = 0 line = stdin.readline().rstrip() trans_line = line.replace('()', '0') def first_way(): ans = 0 for i in trans_line: if i == '(': stack.append(i) elif i == ')': stack.pop() ans += 1 else: ans += len(stack) return ans def second_way(): standard = 'O' ans = 0 for i in line: if i == '(': stack.append(i) standard= 'O' else: if standard == 'O': stack.pop() ans += len(stack) standard = 'C' else: ans += 1 stack.pop() return ans if __name__ == '__main__': print(first_way()) print(second_way()) | cs |