PS

Leetcode 2207. Maximize Number of Subsequences in a String

Bryan Lee 2022. 4. 25. 01:29

문제 이해

- 문자열에 하나의 문자를 추가함으로 인해서, subsequence를 최대화하라. 

 

해결 전략

- 문자열을 순회하면서 첫번째 문자를 만날때마다, cnt1++을 한다.

- 문자열을 순회하면서 두번째 문자를 만날때마다, res에 cnt1을 더하고, cnt2++을 한다.

- 최종적으로 res에 cnt1과 cnt2중에 큰 값을 더해준다. 

 

구현

class Solution {
      public long maximumSubsequenceCount(String s, String pattern) {
        long res = 0, cnt1 = 0, cnt2 = 0;
        for (int i = 0; i < s.length(); ++i) {   
            if (s.charAt(i) == pattern.charAt(1)) {   
                res += cnt1; 
                cnt2++;
            }
            if (s.charAt(i) == pattern.charAt(0)) {   
                cnt1++;
            }
        }
        return res + Math.max(cnt1, cnt2);
    }
}

피드백

- 효율적이고 견고한 문제 해결 패턴을 내 것으로 만들고, 익히는 것이 중요하다.