Python으로 구현한 1218번 [S/W 문제해결 기본] 4일차 - 괄호 짝짓기 문제 풀이입니다.
from collections import defaultdict
for tc in range(1, 11) :
n = int(input())
data = list(input())
info = defaultdict(int)
for d in data :
info[d] += 1
result = 1
for k, v in info.items() :
if k == '(' :
if info[')'] != v :
result = 0
break
elif k == '[' :
if info[']'] != v :
result = 0
break
elif k == '{' :
if info['}'] != v :
result = 0
break
elif k == '<' :
if info['>'] != v :
result = 0
break
print('#%d %d' % (tc, result))
1. 각 테스트 케이스마다 입력받은 괄호 문자의 등장 횟수를 info 딕셔너리에 담는다.
2. result를 1로 초기화하고, 반복문을 통해 info 딕셔너리의 요소를 하나씩 가져와 아래와 같은 작업을 수행한다.
- 만약 키 값(k)이 '('이고 value 값(v)이 ')'의 등장 횟수와 다르다면 result를 0으로 갱신하고 break한다.
- 만약 키 값(k)이 '['이고 value 값(v)이 ']'의 등장 횟수와 다르다면 result를 0으로 갱신하고 break한다.
- 만약 키 값(k)이 '{'이고 value 값(v)이 '}'의 등장 횟수와 다르다면 result를 0으로 갱신하고 break한다.
- 만약 키 값(k)이 '<'이고 value 값(v)이 '>'의 등장 횟수와 다르다면 result를 0으로 갱신하고 break한다.
3. 최종적으로 해당 테스트 케이스 번호와 함께 result 값을 출력한다.
'SWEA(Python) 풀이 > D4' 카테고리의 다른 글
SWEA[D4] (Python) 1226번 [S/W 문제해결 기본] 7일차 - 미로1 풀이 (0) | 2022.06.04 |
---|---|
SWEA[D4] (Python) 1222번 [S/W 문제해결 기본] 6일차 - 계산기1 풀이 (0) | 2022.06.04 |
SWEA[D4] (Python) 1219번 [S/W 문제해결 기본] 4일차 - 길찾기 풀이 (0) | 2022.06.04 |
SWEA[D4] (Python) 1211번 [S/W 문제해결 기본] 2일차 - Ladder2 풀이 (0) | 2022.06.03 |
SWEA[D4] (Python) 1210번 [S/W 문제해결 기본] 2일차 - Ladder1 풀이 (0) | 2022.06.03 |