HackerRank - Balanced Brackets
HackerRank의 Balanced Brackets 문제 풀이 입니다.
문제:
{},[],() 세 괄호들의 조합들이 주어졌을 때,
괄호가 완전한지, 불완전한지 확인하는 문제입니다.
완전하면 YES를, 불완전하면 NO를 리턴하면 됩니다.
예시:
{[()]} --> 완전 (return 'YES')
{[(])} --> 불완전 (return 'NO')
코드:
def isBalanced(s):
# Write your code here
stack = []
pair = {'}':'{', ']':'[', ')':'('}
for ss in s:
if ss in ['{', '[', '(']:
stack.append(ss)
elif len(stack) == 0: return 'NO'
elif pair[ss] != stack.pop(): return 'NO'
if len(stack) == 0: return 'YES'
return 'NO'
풀이:
저는 딕셔너리와 스택을 활용해서 풀었습니다.
'[', '{', '(' 와 같은 여는 괄호의 경우 stack에 그대로 푸쉬해줬습니다.
']', '}', ')' 와 같이 닫는 괄호가 나올 경우 stack을 pop하여 짝이 맞는지 안맞는지 비교했습니다.
짝이 맞이 않는 경우 괄호가 불완전한 것이기에 바로 return 'No'를 했습니다.
짝이 모두 맞는 입력에 경우 for문에 나오게되면 stack은 비게 됩니다.
그렇기에 마지막에 stack이 비어 있는지 비어 있지 않은지 한 번 확인해줘야합니다.
Author And Source
이 문제에 관하여(HackerRank - Balanced Brackets), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@young221718/HackerRank-Balanced-Brackets저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)