오전에는 구구🕊 의 두 번째 재테크 강의를 들었다.
어려운 말들이 가득해서 당장 이해하기는 어려웠다. 요즘 스타트업에 관심이 많았는데 재무제표를 보고 스타트업을 분석하는 방법을 알게 되어서 좋았다. 😀
오늘은 요 리트코드 문제를 풀었다. 리드코드 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;
}
};
솔루션 코드이다. 요 문제도 슬라이딩 윈도우 기법을 쓸 수 있다.
모든 알파벳을 모두 탐색하는 방식은 생각하지 못했는데, 이렇게 해야 모든 케이스를 커버할 수 있는 것 같다.
'우아한테크코스 > 레벨5' 카테고리의 다른 글
[TIL] 2024/11/14 (0) | 2024.11.14 |
---|---|
[TIL] 2024/11/12 (2) | 2024.11.12 |
[TIL] 2024/11/11 (0) | 2024.11.11 |
[TIL] 2024/11/10 (0) | 2024.11.10 |
[TIL] 2024/11/09 (1) | 2024.11.09 |