[파이썬/python] 백준 - 17287 The Deeper, The Better

2025. 7. 25. 19:58·알고리즘
반응형

문제

https://www.acmicpc.net/problem/17287


문제 설명

  1. 대괄호, 중괄호, 소괄호, 0에서 9까지의 숫자로 이루어진 문자열 S가 주어진다.
  2. 문자열 S에 포함된 숫자들은 점수를 휙득하게 된다.
    1. 대괄호 안에 있는 숫자는 3점
    2. 중괄호 안에 잇는 숫자는 2점
    3. 소괄호 안에 있는 숫자는 1점
  3. 한 숫자가 여러 개의 괄호 안에 있는 경우 각 괄호의 점수를 합한 값이 그 숫자의 점수이다.
    1. 이 때 같은 숫자가 여러 개 있더라도 위치가 다르면 점수를 따로 계산한다.
  4. 나올 수 있는 높은 점수를 출력한다.

풀이

스택을 통해 괄호를 제거해가면서 숫자가 나왔을 때 스택에 존재하는 괄호의 수 만큼 점수를 넣어주면 된다.

이 때 숫자가 여러 개 존재할 때 각각 점수를 다르게 넣어준다는 점이 이 문제의 포인트인 것 같다.  

  1. scores 딕셔너리에 키, 밸류로 각 괄호의 점수를 초기화한다.
  2. 문자열을 순회한다.
    1. 왼쪽 괄호일 때 stack에서 제거한다.
    2. 오른쪽 괄호일 때 stack에서 삽입한다.
    3. 숫자일 때 현재 stack의 괄호 별 점수를 더한 후 최댓값을 갱신한다.
  3.  최댓값을 출력한다.

코드

import sys
input = sys.stdin.readline

res = 0
s = input().strip()
stack = []
num = []
scores = {']': 3, '}': 2, ')': 1}
for i in range(len(s)-1,-1,-1):
    if s[i] in [']',')','}']:
        stack.append(s[i])
    elif s[i] in ['[','(','{']:
        stack.pop()

    else:
        tmp = 0
        for s2 in stack:
            tmp += scores[s2]
        res = max(res,tmp)
print(res)

시간복잡도

  • 총 문자열의 길이만큼 순회하므로 길이를 N으로 하면 $O(N)$이다.
  • N은 최대 100이므로 약 $O(100)$의 시간복잡도가 소요된다.
반응형

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

[파이썬/python] 백준 - 1948 임계경로  (4) 2025.07.27
[파이썬/python] 백준 - 1715 카드 정렬하기  (1) 2025.07.26
[파이썬/python] 백준 - 2295 세 수의 합  (1) 2025.07.24
[파이썬/python] 백준 - 11387 님 무기가 좀 나쁘시네여  (2) 2025.07.23
[파이썬/python] 백준 - 11562 백양로 브레이크  (0) 2025.07.22
'알고리즘' 카테고리의 다른 글
  • [파이썬/python] 백준 - 1948 임계경로
  • [파이썬/python] 백준 - 1715 카드 정렬하기
  • [파이썬/python] 백준 - 2295 세 수의 합
  • [파이썬/python] 백준 - 11387 님 무기가 좀 나쁘시네여
개골개굴
개골개굴
굶고 코딩하기
  • 개골개굴
    밥스토리
    개골개굴
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (160)
      • 알고리즘 (124)
      • CS (13)
      • Java (5)
      • 자기개발 (18)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준
    작심삼일 챌린지
    springboot
    completablefuture
    OS
    async
    인프런
    알고리즘
    SMTP
    Redis
    컴퓨터 구조
    컴퓨터구조
    python
    java
    파이썬
  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
개골개굴
[파이썬/python] 백준 - 17287 The Deeper, The Better
상단으로

티스토리툴바