반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[LeetCode] 856 | Score of Parentheses | Python 본문
728x90
반응형
문제 링크: https://leetcode.com/problems/score-of-parentheses/
문제
Given a balanced parentheses string s, return the score of the string.
The score of a balanced parentheses string is based on the following rule:
- "()" has score 1.
- AB has score A + B, where A and B are balanced parentheses strings.
- (A) has score 2 * A, where A is a balanced parentheses string.
조건
- 2 <= s.length <= 50
- s consists of only '(' and ')'.
- s is a balanced parentheses string.
내 풀이
다음과 같이 문제가 주어졌다고 하자.
검은색 괄호는 깊이가 1, 파란색은 깊이가 2, 초록색은 3, 보라색은 4다.
'('과 ')'이 만나는 곳을 기준으로 점수를 매긴다.
점수는 $2^{Depth-1}$로 나타내어진다.
각 점수를 합산한 것을 리턴하면 된다.
코드
class Solution:
def scoreOfParentheses(self, s: str) -> int:
score = 0
cur = 1
for n in range(len(s)-1):
if s[n] == '(':
if s[n+1] == ')':
score += cur
cur *= 2
else:
cur /= 2
return int(score)
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[LeetCode] 763 | Partition Labels | Python (0) | 2022.03.21 |
---|---|
[LeetCode] 316 | Remove Duplicate Letters | Python (0) | 2022.03.18 |
[LeetCode] 946 | Validate Stack Sequences | Python (0) | 2022.03.16 |
[LeetCode] 1249 | Minimum Remove to Make Valid Parentheses | Python (0) | 2022.03.15 |
[LeetCode] 71 | Simplify Path | Python (0) | 2022.03.14 |
Comments