Coblin
코딩하는 고블린
Coblin
전체 방문자
오늘
어제
  • 분류 전체보기 (38)
    • 일상, 생각, 경험 (2)
    • 알고리즘 (24)
      • 자료구조 (1)
      • 프로그래머스 (19)
      • 구름level (2)
      • 백준 (2)
    • 프로그래밍 언어&프레임워크 (11)
      • java (6)
      • springboot (0)
      • python (3)
      • django (1)
      • sql (1)
    • IT도서 (1)

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
Coblin

코딩하는 고블린

알고리즘/프로그래머스

[프로그래머스] LEVEL2 - 올바른 괄호 (Python)

2020. 6. 5. 20:10
반응형

https://programmers.co.kr/learn/courses/30/lessons/12909

 

코딩테스트 연습 - 올바른 괄호

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호�

programmers.co.kr

문제설명

괄호가 바르게 짝지어졌다는 것은 '('문자로 열렸으면 반드시 짝지어서 ')'문자로 닫혀야 한다는 뜻입니다.

예를 들어

  • "()()" 또는 "(())()"는 올바른 괄호입니다.
  • ")()(" 또는 "(()("는 올바르지 않은 괄호입니다.

제한조건

  • 문자열 s의 길이 : 100,000 이하의 자연수
  • 문자열 s는 '(' 또는 ')'로만 이루어져 있습니다.

입출력 예

s answer
"()()" true
"(())()" true
")()(" false
"(()(" false

answer

def solution(s):
    answer = []
    
    if len(s) % 2 == 0: # s의 길이가 짝수일때만 판단
        for i in s:
            if not len(answer) and i == ")": # 배열이 비어있을때 )가 들어오면 올바르지 않은 괄호
                return False
            elif i == "(": # (일때 배열에 넣어준다.
                answer.append(i)
            elif i == ")": # )일때 배열의 (를 빼준다.
                answer.pop()
        if not len(answer): # for문이 모두 돌고 배열에 값이 없으면 올바른 괄호
            return True
        else: # 배열에 값이 있으면 올바르지 않은 괄호
            return False
    else: # s의 길이가 홀수 일때는 올바르지 않은 괄호
        return False
반응형

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] LEVEL4 - 가사 검색 (Python)  (2) 2020.10.05
[프로그래머스] LEVEL2 - 짝지어 제거하기 (Python)  (0) 2020.10.05
[프로그래머스] LEVEL1 - 체육복 (Python)  (0) 2020.06.03
[프로그래머스] LEVEL2 - 주식가격 (Python)  (0) 2020.05.28
[프로그래머스] LEVEL2 - 튜플 (Python)  (0) 2020.04.27
    '알고리즘/프로그래머스' 카테고리의 다른 글
    • [프로그래머스] LEVEL4 - 가사 검색 (Python)
    • [프로그래머스] LEVEL2 - 짝지어 제거하기 (Python)
    • [프로그래머스] LEVEL1 - 체육복 (Python)
    • [프로그래머스] LEVEL2 - 주식가격 (Python)
    Coblin
    Coblin
    초보개발자의 공부블로그입니다.

    티스토리툴바