2022년 03월 17일 목요일 - 아니 왤케 시간이 안가지?
오늘 올려볼 문제는 856번 Score of Parentheses 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 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 문제 풀이' 카테고리의 다른 글
| [LeetCode] 763번 문제를 풀어보았다. (ft. java) (1) | 2022.03.21 | 
|---|---|
| [LeetCode] 1007번 문제를 풀어보았다. (ft. java) (0) | 2022.03.20 | 
| [LeetCode] 946번 문제를 풀어보았다. (ft. java) (0) | 2022.03.16 | 
| [LeetCode] 1249번 문제를 풀어보았다. (ft. java) (0) | 2022.03.15 | 
| [LeetCode] 71번 문제를 풀어보았다. (ft. java) (0) | 2022.03.14 |