뭉지(moonz)
작은 발자국들의 위대한 여정
뭉지(moonz)
  • All (202)
    • Test Code (4)
    • 백엔드 개발하며 작성한 (27)
      • Spring (17)
      • 데이터베이스 (7)
      • 기억할 내용 (3)
    • 언어 (53)
      • Java (25)
      • node.js (7)
      • Python (21)
    • 클라우드 (6)
    • Algorithm & Data Structure (51)
      • 개념 (15)
      • 문제 풀이 (36)
    • 유용한 모든 것 (16)
    • monologue (7)
      • 업무 노트 (1)
      • 관리 로그 (0)
      • 내 이야기 공책 (6)
    • Project (2)
    • TroubleShooting (8)
    • 지식 (18)
      • Machine Learning (6)
      • Review (7)
      • Web (5)
    • Computer Science (5)

블로그 메뉴

  • 홈
  • 태그

인기 글

최근 글

최근 댓글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
뭉지(moonz)

작은 발자국들의 위대한 여정

[4949] 균형잡힌 세상 (Python)
Algorithm & Data Structure/문제 풀이

[4949] 균형잡힌 세상 (Python)

2021. 6. 21. 15:34
반응형

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

 

4949번: 균형잡힌 세상

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

www.acmicpc.net

문제

 

생각 정리

  • 일단 stack으로 하면 된다는 생각까지가 힘들었다.. 만약 stack으로 해줄 수 있다는 걸 알았으면 시간이 더 단축됐을텐데말이다.
  • stack을 이용하면 '(' or '[' 는 그냥 입력하고 ')' or ']'는 각각 '(' or '['가 있는지 확인을 해준 후, 있다면 빼주는 것이다.
  • stack에 들어가는 것은 '('와 '['  뿐인 것이다.
  • stack이 비어있거나 최상위 값이 '[' or '('가 아닌 경우, 균형을 의미하는 flag 변수를 false로 바꿔준 후 break한다.
  • 마지막에 flag 변수와 stack에 값이 남아있는지 확인하여 'yes'를 출력할지 'no'를 출력할지 정한다.
import sys
input = sys.stdin.readline
while True:
    s = input()
    print(s,'.')
    flag = True
    if s == '.':
        break
    stack = []
    for i in s:
        if i in '([':
            stack.append(i)
        elif i == ')':
            if not stack or stack.pop() != '(':
                flag = False
                break
        elif i == ']':
            if not stack or stack.pop() != '[':
                flag = False
                break
    if not stack and flag:
        print("yes")
    else:
        print('no')

계속 '출력초과' 라는 결과가 뜬다. 이 코드의 문제는 무엇일까?

readline()의 공백문자('\n') 때문이다.

 

그래서 readline() 뒤에 rstrip()을 이용해서 제거해주어야한다. 네번째 line만 다음과 같이 바꿔주면 된다.

    s = input().rstrip()

 

 

반응형
저작자표시 (새창열림)

'Algorithm & Data Structure > 문제 풀이' 카테고리의 다른 글

[programmers] 완주하지 못한 선수 (Python)  (0) 2021.06.22
[programmers] 모의고사 (Python)  (0) 2021.06.21
[10828] 스택 (Python)  (0) 2021.06.21
[9012] 괄호 (Python)  (0) 2021.06.21
[18258] 큐 2 (Python)  (0) 2021.06.18
    'Algorithm & Data Structure/문제 풀이' 카테고리의 다른 글
    • [programmers] 완주하지 못한 선수 (Python)
    • [programmers] 모의고사 (Python)
    • [10828] 스택 (Python)
    • [9012] 괄호 (Python)
    뭉지(moonz)
    뭉지(moonz)
    제가 깨달은 것을 정리하는 공간입니다. 🧡

    티스토리툴바