4/18 스터디 문제

hyejun sang·2022년 4월 18일
0

알고리즘

목록 보기
20/28
post-thumbnail

1번 문제.
https://www.acmicpc.net/problem/4949
-> 균형잡힌 세상

1-1번 문제 풀이 코드 (틀림)

import sys

while True:
    sentence = sys.stdin.readline().rstrip()
    bracket = []
    true_flag = 1

    for i in sentence:
        if i == '(' or i == '[':
            bracket.append(i)
        elif i == ']':
            if len(bracket) != 0 and bracket[-1] == '[':
                bracket.pop()
            else:
                true_flag = 0
                break
        elif i == ')':
            if len(bracket) != 0 and bracket[-1] == '(':
                bracket.pop()
            else:
                true_flag = 0
                break

    if sentence == '.':
        break

    if true_flag == 1:
        print('yes')
    else:
        print('no')

=======================================================

1-2번 문제 풀이 코드(정답)

import sys

while True:
    # 문장들을 원하는 만큼 입력 받기
    sentence = sys.stdin.readline().rstrip()
    # 괄호를 체크할 리스트
    bracket = []
    # 맞으면 1, 틀리면 0
    true_flag = 1

    for i in sentence:
        # 만약 문장에서 '(' 이나 '['이 있으면 bracket리스트에 추가
        if i == '(' or i == '[':
            bracket.append(i)
        # 만약 ']' 가 보이면,
        elif i == ']':
            # bracket 리스트가 비어있지 않고, 여는 괄호가 ']'와 짝이 맞다면,
            if len(bracket) != 0 and bracket[-1] == '[':
                bracket.pop() # 맞는 것은 1, 그리고 결국엔 bracket안에 아무것도 남지 않음
            else:
                true_flag = 0 # 틀렸으면 0 그리고 멈춤
                break
        # 만약 ')' 가 보이면,
        elif i == ')':
            # bracket 리스트가 비어있지 않고, 여는 괄호가 ')'와 짝이 맞다면,
            if len(bracket) != 0 and bracket[-1] == '(':
                bracket.pop() # 맞는 것은 1, 그리고 결국엔 bracket안에 아무것도 남지 않음
            else:
                true_flag = 0 # 틀렸으면 0 그리고 멈춤
                break
    # 만약 '.'이면 종료한다.
    if sentence == '.':
        break

    # 만약 bracket 안에 아무것도 없고, true_flag가 1이면 yes 아니면 no 출력
    if true_flag == 1 and len(bracket) == 0:
        print('yes')
    else:
        print('no')

=======================================================
진짜 괜히 다른 곳에서 찾을게 아니라 조건을 어떻게 줬는지를 잘 생각해볼 것
오늘은 여기까지.

0개의 댓글