[파이썬] 백준 9012 - 괄호

2021. 3. 8. 19:21· 알고리즘 공부
반응형

스택 자료구조 알고리즘을 사용할 수 있는지 물어보는 문제이다. ( ※ '코드라이언' 알고리즘 강좌를 들으며 풀었음! )

<나의 코드>

import sys

def stack_push(stack, val):
    stack.append(val)

def stack_pop(stack):
    return stack.pop()

T = int(sys.stdin.readline())

for tc in range(T):
    S = sys.stdin.readline()
    stack = []
    is_VPS = True
    for i in range(len(S)):
        if S[i] == '(':
            stack_push(stack, '(')
        elif S[i] == ')':
            if len(stack) == 0:
                is_VPS = False
                break
            last = stack_pop(stack)
            if last == '(':
                continue
    if len(stack) != 0:
        is_VPS = False
    if is_VPS:
        print("YES")
    else:
        print("NO")

스택관련 함수를 만든다. (stack_push, stack_pop 함수) → tc를 돌린다, 매 tc마다 문자열을 새로 입력받고, stack 리스트를 초기화 시킨다. → is_VPS는 VPS가 맞는지 아닌지 판단해주는 변수 → 문자열 S만큼 순회하면서 괄호를 판단하는 로직

 

< 시행착오 >

S 문자열에서 추출하고 stack 리스트에 넣은 괄호를 어떤 방식으로 추출하고 VPS 판단을 어떻게 하는지

 

< 해결방법 >

S문자열을 순회하면서 '(' 는 일단 stack 리스트에 넣고, ')'가 나오면 '(' 스택 리스트에서 하나씩 pop하면서 VPS 여부 판단 → 스택이 비어있다면 VPS, 스택 리스트가 비어있지 않다면 VPS 아님 ( 로직이 이해가 가지 않는다면 코멘트 남겨주시기 바랍니다..! )

 

★ 추신

이 문제는 '코드라이언'에서 스택강좌를 들을때 배운 문제이다. 스택에 관한 기본 지식과 구현방법은 알고 있었지만, 그 이외 디테일한 부분을 더욱 보완하기 위해 열심히 코딩해야겠다! 조만간 정처기 공부도 들어가야 하는데 바쁘다 바빠! ( 바쁘게 사는게 좋다 난 ㅋㅋㅋㅋ )

반응형

'알고리즘 공부' 카테고리의 다른 글

[파이썬] 백준 8958 - OX퀴즈  (0) 2021.03.14
[파이썬] 백준 1546 - 평균  (0) 2021.03.11
[파이썬] 백준 2908 - 상수  (2) 2021.03.07
[파이썬] 백준 1152 - 단어의 개수  (0) 2021.03.06
[파이썬] 백준 1157 - 단어공부  (0) 2021.03.06
'알고리즘 공부' 카테고리의 다른 글
  • [파이썬] 백준 8958 - OX퀴즈
  • [파이썬] 백준 1546 - 평균
  • [파이썬] 백준 2908 - 상수
  • [파이썬] 백준 1152 - 단어의 개수
Developer KTU
Developer KTU
Developer KTU
KTU 개발 블로그
Developer KTU
전체
오늘
어제
  • 분류 전체보기
    • 웹 개발 공부 : Back-end
      • JAVA
      • JPA
      • JAVA - Spring
      • MySQL
      • Docker
      • Redis
      • JSP
      • DevOps
      • 파이썬 - 장고
      • 운영체제
      • WEB
    • 블록체인
    • 웹 개발 공부 : Front-end
      • React
      • Javascript
      • JQuery
      • Ajax
    • 알고리즘 공부
    • 나의 커리어

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 알고리즘공부기
  • Java
  • 자바
  • BOJ
  • 자바스크립트
  • 백엔드개발자
  • 컴퓨터공학
  • 백엔드
  • JavaScript
  • 스프링부트
  • 파이썬
  • Back-end
  • SpringBoot
  • 웹개발
  • 백준
  • 알고리즘공부
  • 알고리즘
  • 코딩테스트
  • Python
  • Algorithm

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Developer KTU
[파이썬] 백준 9012 - 괄호
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.