is_pair함수는 문자열 s를 매개변수로 입력받습니다. s에 괄호가 알맞게 짝지어져 있으면 True를 아니면 False를 리턴하는 함수를 완성하세요. 예를들어 s가 “(hello)()”면 True이고, “)(“이면 False입니다. s가 빈 문자열(““)인 경우는 없습니다.
내 풀이
def is_pair(n):
for i in n:
if i == ')':
return False
elif i == '(':
a = n.count('(')
b = n.count(')')
if a == b:
return True
else:
return False
break
print( is_pair("(hello)()"))
print( is_pair(")("))
True
False
이 풀이법이 programmers.com의 테스트를 통과하길래 문제 없는줄 알았는데 그게아니었다.
그냥 랜덤으로 생성되는 테스트 케이스들 중에 운좋게 실패하는 테스트 케이스가 없었나보다.
아래의 테스트 케이스의 경우 실제로 괄호 짝이 안맞는데도 True 값이 리턴된다.
# 임세준님 제보
print( is_pair("(hello))(()()"))
나중에 다시 풀어보아야겠다.