Kim Seon Deok
[백준] 9012 - 괄호 본문
https://www.acmicpc.net/problem/9012
1. 문자열의 길이가 짝수
2. ( 로 시작해 )로 끝나야 한다.
3. ( 와 ) 의 갯수가 같아야 함
라고 접근했지만, ( ) ) ( ( ) 이라는 반례가 있었다.
그래서
1. 맨 처음에 )로 시작 하면 "NO".
2. (를 담기 위한 빈 리스트 vvps 생성.
(로 시작하는 경우
2-1 이후에 (가 왔을 때 (를 vvps에 append
2-2 이후에 )가 왔을 때
2-2-1 vvps에 (가 남아있는 경우 (를 pop
2-2-2 vvps에 (가 남아있지 않은 경우 )를 vvps에 append
3.vvps의 길이가 0보다 클 때 "NO", 그렇지 않다면 "YES"
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 | N = int(input()) vps = [] for i in range(0,N): v = input() vps.append(v) for i in range(0,N): if vps[i][0] == ")": print("NO") else: vvps = [] vvps.append("(") for j in range(1,len(vps[i])): if vps[i][j] == "(": vvps.append("(") elif vps[i][j] == ")": if vvps.count("(")>0 : vvps.pop(-1) else: vvps.append(")") if len(vvps) == 0: print("YES") else: print("NO") | cs |
'python > Algorithm' 카테고리의 다른 글
[백준] 2659 십자카드 (0) | 2022.01.14 |
---|---|
[백준] 1244 스위치 켜고 끄기 (0) | 2022.01.14 |
[백준]1302 베스트셀러 (0) | 2022.01.08 |
[백준]1158 요세푸스 문제 (0) | 2022.01.08 |
[백준] 1343번 폴리오미노 (0) | 2022.01.06 |
Comments