Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- BOB
- BoB 7기
- 2605
- boj
- 10995
- 정보보호 영재교육원
- acmicpc
- 2506
- 리뷰
- Python
- 정보보호 영재원
- 공주대 정보보호
- 10833
- 11109
- EOF
- text
- 11943
- 영재원
- 5086
- 차세대 보안 리더 양성
- 4101
- 차세대 보안 리더 양성 프로그램
- BoB 후기
- 2501
- 2965
- 영재교육원
- 2476
- 5586
- 1547
- Best of the Best
Archives
- Today
- Total
짱해커가 되어보자
boj 4949 본문
문제
온전히 '.'으로만 끝날 때 까지 문자열을 입력하며, 입력받은 문자열이 '()' 아니면 '[]'으로 잘 닫혀있어야 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')
Comments