-
백준 파이썬 9012 괄호BOJ 2020. 3. 25. 19:31
내 풀이
1234567891011121314151617n = int(input())while n > 0:n -= 1a = input()if a.count('(') != a.count(')') or a[0] != '(' or a[-1] != ')':print('NO')else:for i in range(len(a)):if a[0:i].count('(') < a[0:i].count(')'):print('NO')breakif i == len(a)-1:print('YES')cs 스택 태그로 분류된 문제인데, 스택써야되는 아이디어가 안떠올라서
또 그냥 문제를 있는 그대로 풀었다. 매우 비효율적으로..
(를 +1로, )를 -1로 치환해서 생각해야 되는데 그런 생각이 안 떠오른다..
사실상 틀린 풀이다.좀 더 출제의도에 가깝게 다시 푼 풀이
1234567891011121314151617181920n = int(input())while n > 0:n -= 1a = input()c = 0for i in range(len(a)):if a[i] == '(':c += 1else:c -= 1if c<0:print('NO')breakif i == len(a) - 1:if c == 0:print('YES')else:print('NO')cs 그런데 이 풀이 또한,
마지막의 if문때문에 복잡도면에서 손해가 된다. (ㅠㅠ)
'BOJ' 카테고리의 다른 글
백준 파이썬 10845 큐 (0) 2020.03.26 백준 파이썬 10828 스택 (0) 2020.03.26 백준 파이썬 2798 블랙잭(세 수를 순서대로 뽑아서 합, 순서대로 뽑는 방법) (0) 2020.03.22 백준 파이썬 2231 분해합 (0) 2020.03.22 백준 파이썬 1978 소수찾기 (0) 2020.03.22