-
(코딜리티) Lesson 7. [Stacks and Queues] : Nesting - pythonAlgorithm/코딜리티 2021. 1. 27. 20:04
문제 : app.codility.com/programmers/lessons/7-stacks_and_queues/nesting/
문제 내용
N개의 문자로 이루어진 문자열 S가 주어질 때, 아래의 조건일 경우 올바르게 중첩됬다고 한다.
- S가 비어있는 경우
- S가 "()"일 경우
예를 들어, S = "(()(())())"또는 "())"가 주어질 때,
전자는 올바르게 중첩되어 1을 return하고,
후자는 잘못되어 0을 return한다.
제한 사항
- N은 0~1,000,000사이
- S는 "(" 또는 ")"로 이루어져 있다.
코드
def solution(S): stack = [] for s in S: if s == "(": stack.append(s) else : if len(stack) == 0: return 0 p = stack.pop() if p != "(": stack.append(p) stack.append(s) return 1 if len(stack) == 0 else 0
해설
기본적인 stack문제로 코드만 봐도 쉽게 이해할 수 있을거라 생각이 듭니다.
'Algorithm > 코딜리티' 카테고리의 다른 글
(코딜리티) Lesson 8. [Leader] : Dominator - python (0) 2021.01.28 (코딜리티) Lesson 7. [Stacks and Queues] : StoneWall - python (2) 2021.01.28 (코딜리티) Lesson 7. [Stacks and Queues] : Fish - python (0) 2021.01.26 (코딜리티) Lesson 7. [Stacks and Queues] : Brackets - python (0) 2021.01.26 (코딜리티) Lesson 6. [sorting] : triangle- python (0) 2021.01.26 댓글