1. 문제
https://programmers.co.kr/learn/courses/30/lessons/76502
2. 풀이
copy 대신 이렇게도 쓸 수 있다
s = origins[:]
3. 코드
def checkpair(a,b):
if a == '(':
if b == ')': return True
elif a == '{':
if b == '}': return True
elif a == '[':
if b == ']': return True
return False
def checkstack(origins):
s = origins[:]
stack = []
top = -1
answer = 0
for i in s:
new = i
if top != -1:
if (checkpair(stack[top],new)):
stack.pop()
if top == 0:
answer = answer +1
top = top -1
else:
stack.append(new)
top = top +1
else :
stack.append(new)
top = top +1
if top == -1 :
return answer
else:
return 0
def solution(s):
doubles = s + s
answer = 0
for i in range(len(doubles)):
if ((doubles[i] == '(') or (doubles[i] == '{') or (doubles[i] =='[')):
tests = doubles[i:i+len(s)]
answer = checkstack(tests)
if (answer == 0):
continue
else:
break
return answer
'ALGORITHM > Kakao' 카테고리의 다른 글
[Python] 거리두기 확인하기 (0) | 2021.10.05 |
---|---|
[Python] 문자열 압축 (0) | 2021.10.05 |
[Python] 비밀지도 (0) | 2021.10.03 |
[Python] 수식 최대화 (0) | 2021.10.02 |
[Python] 키패드 누르기 (0) | 2021.09.30 |