일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- KT
- 리얼클래스
- 인앱결제
- java 객체지향 프로그래밍
- Java
- 코테
- 백준
- 코딩테스트 연습
- 네트워크 관리사 2급
- IT 동향
- 카카오
- 코딩테스트
- 싸피
- IT 트렌드
- it 뉴스
- 백준위
- SSAFY 7기
- 네트워크 관리사
- 싸피셜
- SSAFYcial
- 네트워크 관리사 2급 실기
- 구글
- it 이슈
- 신문 스크랩
- python
- html
- SSAFY
- 프로그래머스
- 신문스크랩
- 우테코
Archives
- Today
- Total
개발자일걸요..?
4949번 균형잡힌 세상 본문
728x90
반응형
문제링크 : www.acmicpc.net/problem/4949
4949번: 균형잡힌 세상
하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마
www.acmicpc.net
<알고리즘>
1) 문자열 입력받기(단 sys.stdin.readline()을 사용할 경우 맨 뒤에 개행 문자가 오기때문에 종료조건을 만들때 주의해야함)
2) 문자열을 돌면서 '('나 '['가 있으면 stack에 push하고 ')'나 ']'가 오면 stack의 top이 자신의 짝꿍인지 확인 후 yes/no 결정
( 메모리 : 28776KB 시간 : 140ms)
check = []
def push(a):
check.insert(0,a)
def pop():
del check[0]
def size():
return len(check)
def top():
return check[0]
import sys
while(True):
check.clear()
exam = sys.stdin.readline()
if(exam ==".\n"):
break
flag = True
for i in range(len(exam)-1):
if(exam[i] == '('):
push('(')
elif(exam[i] == '['):
push('[')
elif(exam[i] == ')'):
if(size()==0):
flag = False
break
else:
if(top()=='('):
pop()
else:
flag = False
break
elif (exam[i] == ']'):
if (size() == 0):
flag = False
break
else:
if (top() == '['):
pop()
else:
flag = False
break
if((flag == True) and (size()==0)):
print("yes")
else:
print("no")
반응형
'알고리즘코딩 > Baekjoon Online Judge' 카테고리의 다른 글
17298번 오큰수 (0) | 2021.02.23 |
---|---|
1874번 스택 수열 (0) | 2021.02.22 |
9012번 괄호 (0) | 2021.02.22 |
10773번 제로 (0) | 2021.02.22 |
10828번 스택 (0) | 2021.02.22 |
Comments