반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

4949 균형잡힌 세상 본문

코딩 테스트(Python)/백준, 프로그래머스

4949 균형잡힌 세상

5_hyun 2022. 2. 12. 14:55
반응형

https://www.acmicpc.net/problem/4949

 

4949번: 균형잡힌 세상

하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마

www.acmicpc.net

 

내 풀이(맞음)

x = 1
lst = []
while(True):
    x = input()
    if x == '.':
        break
    lst.append(x)
rst = []
for i in range(len(lst)):
    ary = []   
    for j in range(len(lst[i])):
        if lst[i][j] == '(' or lst[i][j] == '[':
            ary.append(lst[i][j])
        elif lst[i][j] == ')' or lst[i][j] == ']':
            if len(ary) == 0:
                rst.append("no")
                break
            if (lst[i][j] == ')' and ary[-1] == '(') or ((lst[i][j] == ']' and ary[-1] == '[')):
                ary.pop()
            else:
                rst.append("no")
                break
        if j == len(lst[i]) - 1 and ary:
            rst.append("no")
        elif j == len(lst[i]) - 1 and len(ary) == 0:
            rst.append("yes")
for i in rst:
    print(i)

'.'이 들어오기 전까지 입력을 받는다. 그리고 '(', '['이면 ary에 넣는다. ')', ']'일땐 ary가 비어있으면 no이고 괄호의 짝이 맞으면 ary에 오른쪽 괄호를 삭제한다. 균형이 맞지 않으면 no이다. 그리고 마지막 문자이고 ary가 안비었으면 no이고 ary가 비어있으면 yes이다.

리스트 마지막 원소를 가져오려면 ary[-1] 이런식으로 하면된다.

반응형

'코딩 테스트(Python) > 백준, 프로그래머스' 카테고리의 다른 글

1158 요세푸스 문제  (0) 2022.02.19
11279 최대 힙  (0) 2022.02.14
1927 최소 힙  (0) 2022.02.12
2164 카드2  (0) 2022.02.11
10773 제로  (0) 2022.02.08
Comments