-
[python] Codility Lesson 7-3. Nesting공부/알고리즘 2021. 9. 6. 21:40
7-1 의 brackets 문제의 조금 더 쉬운? 버젼 이었던 것 같다.
1. string S의 길이가 0 일때, return1.
2. '(' 와 ')' 위한 nesting_stack 리스트를 생성해주자.
3. for문을 S의 마지막 인덱스부터 돌면서 ')'를 만나면 append, '(' 만나면 nesting_stack의 크기를 확인하고 0이 아니면 nesting_stack의 마지막 인덱스가 '('이면 nesting이 되지않기 때문에 return 0, ')'이면 가장 최근에 스택에 쌓여진 ')'를 삭제 해주자!
4. for 문을 다 돌고 nesting_stack의 길이가 0이 아니면 return 0, 0이면 return 1
# you can write to stdout for debugging purposes, e.g. # print("this is a debug message") def solution(S): # write your code in Python 3.6 if len(S) == 0: return 1 nesting_stack = [] for i in range(len(S)-1,-1,-1): if S[i] == ')': nesting_stack.append(')') elif S[i] == '(': if len(nesting_stack) == 0: return 0 else: if nesting_stack[-1] != ')': return 0 else: del nesting_stack[-1] if len(nesting_stack) == 0: return 1 else: return 0
728x90'공부 > 알고리즘' 카테고리의 다른 글
[python] Codility Lesson 8-1. Dominator (0) 2021.09.07 [python] Codility Lesson 7-4. StoneWall (0) 2021.09.07 [python] Codility Lesson 7-2. Fish (0) 2021.09.03 [python] Codility Lesson 7-1. Brackets (0) 2021.09.03 [python] Codility Lesson 6-3. Triangle (0) 2021.09.02