[백준/Python] 4949 균형잡힌 세상

재활용병·2024년 1월 19일
0

코딩 테스트

목록 보기
92/157

[백준/Python] 4949 균형잡힌 세상


풀이 코드 및 설명

while True:
    line = input().rstrip()
    if line == '.':
        break
    stack = []
    balanced = True

    for char in line:
        if char in '([':
            stack.append(char)
        elif char == ')':
            if not stack or stack[-1] != '(':
                balanced = False
                break
            stack.pop()
        elif char == ']':
            if not stack or stack[-1] != '[':
                balanced = False
                break
            stack.pop()

    print("yes" if balanced and not stack else "no")

while True 를 통해서 사용자에게 한 줄씩 입력받는다. 마지막 문자가 . 일 경우 종료한다.
각 줄에 대해서 빈 스택을 초기화 하고 balanced 변수에 균형 잡힌 문자열인지 아닌지 나타내는 것을 판단할 것이다.

여는 괄호를 만나면 스택에 추가, 닫는 괄호를 만나면 스택이 빌 경우는 False / 스택의 마지막 요소가 짝이 맞지 않으면 False 로 balanced 변수 값을 설정한다. 스택이 비지 않을 경우 해당 괄호를 pop 한다

모든 문자를 순회한 수, 스택이 비어 있고 balanced 가 True 면 'yes' False 면 'no' 를 출력한다.

profile
코딩 말고 개발

0개의 댓글

관련 채용 정보