본문 바로가기

hacking sorcerer

heaven in the tea

728x90
반응형
"""
You get a list of numbers.
Find the longest stretch of numbers (contiguous) whose sum is even.
Return the length. If none exist, return 0.
"""

from typing import List


def longest_even_sum_subarray(nums: List[int]) -> int:
    if not nums:
        return 0

    check_list = []

    for start in range(len(nums)):
        current_sum = 0
        best_length = 0
        for end in range(start, len(nums)):
            current_sum += nums[end]
            if current_sum % 2 == 0:
                best_length += 1
        check_list.append(best_length)

    return max(check_list)


def run_manual_examples() -> None:
    test_cases = [
        ([1, 2, 3, 4], 4),
        ([1, 3, 5], 0),
        ([2, 2, 2], 3),
        ([1], 0),
        ([2], 1),
        ([1, 2, 2, 1], 4),
    ]

    print("Running manual test cases...\n")
    for nums, expected in test_cases:
        result = longest_even_sum_subarray(nums)
        print(f"Input: {nums}")
        print(f"Expected: {expected}, Got: {result}")
        print("-" * 40)


def main():
    print("Longest Even-Sum Subarray Checker")
    user_input = input("Enter numbers: ").strip()

    if user_input == "":
        run_manual_examples()
    else:
        try:
            nums = [int(x) for x in user_input.split()]
        except ValueError:
            print("Invalid input.")
            return

        result = longest_even_sum_subarray(nums)
        print(f"\nResult: {result}")


if __name__ == "__main__":
    main()
728x90
반응형

'hacking sorcerer' 카테고리의 다른 글

너무 잘 만들어진 해커들의 놀이터 한국  (0) 2025.12.01
coffee heaven  (0) 2025.11.25
드디어 본색을 드러내은 Meta AI  (0) 2025.11.04
meta AI를 해킹해보았다  (0) 2025.11.04
bash cookie  (0) 2025.11.02