2022년 03월 17일 목요일 - 아니 왤케 시간이 안가지?


오늘 올려볼 문제는 856번 Score of Parentheses 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

와 오늘 문제 못 푸는 줄


입력


사진에서도 볼 수 있듯이 String 하나가 입력으로 들어온다.



풀이 및 코드


주어진 괄호들의 score를 구하는 문제이다.

() 이 괄호는 1점 괄호 옆에 괄호가 붙은 AB 방식이면 A + B로 계산하고 A를 B가 포함한다면 B는 2 * A와 같이 계산하는 방식이다.


오늘은 꽤 시행착오를 겪다가 문제를 풀었다.

각 괄호마다 level이 있다고 생각하고 (여는 괄호가 나오면 level + 1, 닫는 괄호가 나오면 level - 1) 각 레벨에 값을 저장해줬다.

만약 해당 레벨에 값이 존재한다면 2를 곱하고 없다면 1을 더해주는 방식으로 문제를 풀었다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public int scoreOfParentheses(String input) {
        Stack<Integer> s = new Stack<Integer>();
        int[] level = new int[26];
        int result = 0, lv = 0;
        for(int i = 0; i < input.length(); i++)
        {
            if(input.charAt(i) == '(')
                lv++;
            else
            {
                if(level[lv] == 0)
                    level[lv - 1] += 1;
                else
                {
                    level[lv - 1] += level[lv] * 2;
                    level[lv] = 0;
                }

                lv--;
            }
        }

        return level[0];
    }
}




제출 화면

leetcode 문제 맞았습니다


오늘은 뭔가 문제가 어려워서 꽤 힘들게 풀었다..

그래도 풀었으니 다행이라 생각한다..


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts