-
[python] Codility Lesson 7-1. Brackets공부/알고리즘 2021. 9. 3. 00:21
이전에 코딩테스트 여러곳 보면서 가끔 보았던 빈출? 문제 같다..
코드를 작성하며 정답의 예외처리하는 부분이 아래와 같이 부분 부분있으면 좋지않은 코드라 생각한다.
어찌됫건 생각해본 흐름은
1. 예외상황으로 strStack이 비어있을때 좌측 bracket이 오면 그 순간 return 0
2. 좌측 bracket이 아닌 bracket이 들어올때 strStack에 append
3. 좌측 bracket이 들어올때 해당하는 우측 bracket이 있으면 strStack pop(), 그렇지 않다면 return 0
4. 마지막 예외로 strStack이 for문을 모두 돌고 비어있으면 return 1, 그렇지 않다면 return 0
100점이 나오긴했지만 영 코드도 더럽고 아쉬웠다.
# 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 strStack = list() for i in range(len(S)-1,-1,-1): if S[i] in ['(','[', '{']: if len(strStack) == 0: return 0 if S[i] == '(' and strStack[-1] == ')': strStack.pop(-1) elif S[i] == '[' and strStack[-1] == ']': strStack.pop(-1) elif S[i] == '{' and strStack[-1] == '}': strStack.pop(-1) else: return 0 else: strStack.append(S[i]) if len(strStack) == 0: return 1 else: return 0
728x90'공부 > 알고리즘' 카테고리의 다른 글
[python] Codility Lesson 7-3. Nesting (0) 2021.09.06 [python] Codility Lesson 7-2. Fish (0) 2021.09.03 [python] Codility Lesson 6-3. Triangle (0) 2021.09.02 [python] Codility Lesson 6-4. NumberOfDiscIntersections (0) 2021.08.16 [python] Codility Lesson 6-2. MaxProductOfThree (0) 2021.07.27