MINGYUM 2024. 11. 13. 16:57

오전에는 구구🕊 의 두 번째 재테크 강의를 들었다. 

어려운 말들이 가득해서 당장 이해하기는 어려웠다. 요즘 스타트업에 관심이 많았는데 재무제표를 보고 스타트업을 분석하는 방법을 알게 되어서 좋았다. 😀

 


오늘은 요 리트코드 문제를 풀었다. 리드코드 Medium 문제는 아무리 쉽게 풀려고 해도 어려운 것 같다. 😥😥 엉엉

초반에 문제가 어려워도 당황하지 않고 잘 설명하는 연습을 하고자 했는데, 솔루션이 바로 떠오르지 않으면 당황하게 되는 건 어쩔 수 없다. 

당황하지 않고 문제에 대한 해석을 하는 쪽으로 뇌를 많이 굴리는 연습을 해야겠다. 😄

class Solution {
public:
    int characterReplacement(string s, int k) {
        int ans = 0, n = s.size();
        for(char c = 'A'; c <= 'Z'; c++)
        {
            int i = 0, j = 0, replaced = 0;
            while(j < n)
            {
                if(s[j] == c)
                    j++;
                else if(replaced < k)
                    j++, replaced++;
                else if(s[i] == c)
                    i++;
                else
                    i++, replaced--;
                ans = max(ans, j - i);
            }
        }
        return ans;
    }
};

 

솔루션 코드이다. 요 문제도 슬라이딩 윈도우 기법을 쓸 수 있다.

모든 알파벳을 모두 탐색하는 방식은 생각하지 못했는데, 이렇게 해야 모든 케이스를 커버할 수 있는 것 같다.