내 코드
def solution(s):
a = []
for i in s:
if i == "(":
a.append(i)
else:
if len(a) != 0:
a.pop(len(a)-1)
else:
return False
return False if len(a)!=0 else True
s 문자열을 탐색하면서 "("이 나왔으면 s에 추가한다. ")"이 나왔으면 앞에 "(" 이 무조건 있어야하기때문에 a에 넣어둔 "(" 이 있는지 확인한다. 이때 a에는 ")"이 들어갈수는 없기 때문에 길이만 체크해주면된다. 길이가 0이 아니면 "("이 존재한다는 뜻이므로 a의 마지막을 pop해준다. 길이가 0이면 "(" 이 존재하지 않는데 ")" 나왔다는 뜻이므로 False를 반환한다.
만약 s문자열을 다 돌았을경우 a에 남아있는 "("이 있으면 False 없으면 True를 반환한다.
다른사람 코드에서 마지막 부분을 return len(a)==0 이런식으로 반환한 코드도 있었다!
'코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] 124 나라의 숫자 (0) | 2021.09.07 |
---|---|
[프로그래머스] [3차] n진수 게임 (0) | 2021.09.07 |
[프로그래머스] 다음 큰 숫자 (0) | 2021.09.07 |
[프로그래머스] 최댓값과 최솟값 (0) | 2021.09.07 |
[프로그래머스] N개의 최소공배수 (0) | 2021.09.07 |