문제 풀이
단지 (,)와 [,]가 짝을 이루어 있는지만 확인하는 문제이다. 이는 스택을 이용하여 쉽게 풀 수 있다. 온점을 이용하여 입력을 알린다. EOF문제인걸로알고있는데 정확히 코드의 형식을 지켜야한다~ 이런형식이 있다~는 아직 모르겠어서 while문에 if종료조건 달아줬다. (,[는 리스트에 append해주고 ),]가 온다면 바로 전에 (,[가 있는지 확인한다. 있다면 잘하고있는것이므로 기존(,[를 삭제해주고 만약 아니라면 균형을 잃은것이니 일단 넣어두고 후에 이 리스트의 크기가 0이 아니라면 no를 출력한다. (이러한 생각으로 코드를 구현하다보면 빈리스트에 (가 있고없고 확인하다가 에러난다. 따라서 @과 같은 입력에 안들어가는 문자를 하나 넣어주고 마지막에 길이가 1이다 아니다를 기준으로 출력한다)
소스코드
while 1:
a = list(input())
b = ['@']
if a[0] == '.': break
i = 0
while True:
if a[i] == '.': break
if a[i] == '[' or a[i] == '(':
b.append(a[i])
if a[i] == ']':
if b[-1] == '[':
b.pop()
else:
b.append(a[i])
if a[i] == ')':
if b[-1] == '(':
b.pop()
else:
b.append(a[i])
i += 1
if len(b) == 1:
print("yes")
else:
print("no")
'Koala - 11기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[Python] 백준 1260번: DFS와 BFS (0) | 2023.08.18 |
---|---|
[C++] 백준 2606번: 바이러스 (0) | 2023.08.16 |
[백준/C++] 2346번 : 풍선 터뜨리기 (0) | 2023.08.14 |
[백준/python3] 15663번 : N과 M (9) (0) | 2023.08.13 |
[백준/Python] 3190번 : 뱀 (0) | 2023.08.13 |