728x90
풀이 방법
1. 알고리즘 분류는 스택으로 되어있었지만 해당 문제를 문자열로 해결하고 싶어서 스택을 이용하지 않았다.
2. '(' 과 ')'의 각각의 개수가 다를 경우 또는 '[' 과 ']'의 각각의 개수가 다를 경우 0을 반환해주었다. (올바른 괄호 x)
3. '()' 는 2, '[]'는 3이기에 해당 값들을 replace를 통해서 '+2','+3'으로 바꿔주었다.
4. 3번을 처리해주고 나머지 '(' ,')'은 각각 '+(', ')*2'로 처리해주었다.
5. 마지막으로 '[',']'은 각각 '+(', ')*3'으로 변경해주었다.
6. 3-5 까지의 연산 처리 된 str을 eval 함수를 통해 출력해주었다. 예외 처리가 있을 경우 0으로 처리. (예외가 발생하는 괄호처리가 올바르지 않았다는 뜻이다.
풀이 코드
import sys
string = sys.stdin.readline().strip()
if string.count('(') != string.count(')') or string.count('[') != string.count(']') :
print(0)
else :
try :
print(eval(string.replace('()','+2').replace('[]','+3').replace('(','+(').replace(')',')*2').replace('[','+(').replace(']',')*3')))
except :
print(0)
'Language > Python' 카테고리의 다른 글
[파이썬][백준 1082][DP][그리디] 방 번호 - 컴도리돌이 (0) | 2022.04.24 |
---|---|
[파이썬][백준 2493][스택] 탑 - 컴도리돌이 (0) | 2022.04.23 |
[파이썬][백준 13460][BFS] 구슬 탈출 2 - 컴도리돌이 (0) | 2022.04.21 |
(파이썬) 백준 1015번 : 수열 정렬 - 컴도리돌이 (0) | 2019.09.19 |
(파이썬) 백준 1010번 : 다리 놓기 - 컴도리돌이 (0) | 2019.09.11 |