[1스4코2파] # 185. LeetCode 424. Longest Repeating Character Replacement

gunny·2023년 7월 7일
0

코딩테스트

목록 보기
185/530

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[3코1파] 2023.01.04~ (185차)
[4코1파] 2023.01.13~ (177일차)
[1스4코1파] 2023.04.12~ (88일차)
[1스4코2파] 2023.05.03 ~ (66일차)

Today :

2023.07.06 [185일차]
LeetCode Patterns
424. Longest Repeating Character Replacement
https://leetcode.com/problems/longest-repeating-character-replacement/description/

424. Longest Repeating Character Replacement

https://leetcode.com/problems/longest-repeating-character-replacement/description/

문제 설명

주어진 문자열에서 k만큼의 문자를 다른 문자로 교체가 가능하다고 했을 때, 동일한 문자로 가장 길게 만들 수 있는 문자의 길이

문제 풀이 방법

two points를 이용해서 최대 길이를 유지 하는 방식

내 코드

class Solution:
    def characterReplacement(self, s: str, k: int) -> int:
        l = 0
        count = {}
        maxLen = 0
        for r in range(len(s)):
            
            if not s[r] in count:
                count[s[r]] = 0
            count[s[r]] += 1

            cells_count = r - l + 1
            if cells_count - max(count.values()) <= k:
                maxLen = max(maxLen, cells_count)
                
            else:
                count[s[l]] -= 1
                if not count[s[l]]:
                    count.pop(s[l])
                l += 1
        return maxLen

증빙

여담

? 무슨 말이지 ?? 도대체 무슨 말이지 ?

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글