[Leetcode] 2024. Maximize the Confusion of an Exam - 파이썬, 투포인터

접근

  1. 슬라이딩 윈도우 (투포인터)

연속되는 T of F의 최대 길이를 구하는 문제이다. 투 포인터를 활용하여 left ~ right을 유지하면 될 것 같다. 변경할 수 있는 token이 k개만큼 주어지는데, token이 없을 때마다 left를 1만큼 옮겨 길이를 유지할 수 있다.

풀이

class Solution:
    def maxConsecutiveAnswers(self, key: str, k: int) -> int:

        answer = 0
        for char in ["T", "F"]:
            left = 0
            token = k
            for right in range(len(key)):
                if key[right] == char:
                    if token < 0:
                        if key[left] != char:
                            token += 1
                        left += 1
                elif token > 0:
                    token -= 1
                else:
                    if key[left] != char:
                        token += 1
                    left += 1
                    token -= 1
            
            answer = max(answer, right - left + 1)

        return answer

complexity

Categories:

Updated: