짱해커가 되어보자

boj 4949 본문

프로그래밍_일반/백준

boj 4949

Spadework 2020. 1. 28. 18:47

문제

온전히 '.'으로만 끝날 때 까지 문자열을 입력하며, 입력받은 문자열이 '()' 아니면 '[]'으로 잘 닫혀있어야 yes 아닐 경우 no를 출력하면  된다

 

* 괄호가 없어도 yes

* '.'이 입력되면 끝나야 한다

 

입력 : '.'을 받을 때 까지 <str>
출력 : <str>

풀이

문자열을 입력받으며 '.'으로 끊었을 때 데이터가 없을 때까지 반복을 수행한다

반복을 수행하며 스택에 괄호를 쌓아두었다가 온전히 잘 닫히는 괄호를 만나면 해당 데이터를 지운다

import sys

for l in sys.stdin:
	s, l = [], l.split('.')[0]
	if not l: break

	for i in l:
		if(i in '[('): s.append(i)
		elif(i in '])'):
			if(s and (s[-1]+i == '()' or s[-1]+i == '[]')): del s[-1]
			else: s.append(i)
	print('no' if s else 'yes')

 

'프로그래밍_일반 > 백준' 카테고리의 다른 글

boj 10773  (0) 2020.01.28
boj 9012  (0) 2020.01.28
boj 2164  (0) 2020.01.28
boj 2108  (0) 2020.01.28
boj 1978  (0) 2020.01.28
Comments