# LeetCode 1085: Sum of Digits in the Minimum Number

## Problem Restatement

We are given an integer array `A`.

Let `S` be the sum of the digits of the minimum element of `A`.

Return `0` if `S` is odd, and `1` if `S` is even.

The official constraints state that `1 <= A.length <= 100` and `1 <= A[i] <= 100`.

## Input and Output

| Item | Meaning |
|---|---|
| Input | Array `A` |
| Output | `1` if digit sum of minimum is even, else `0` |

Function shape:

```python
def sumOfDigits(A: list[int]) -> int:
    ...
```

## Examples

Example 1:

```python
A = [34, 23, 1, 24, 75, 33, 54, 8]
```

Minimum is `1`. Digit sum = `1`. Odd → return `0`.

Answer: `0`.

Example 2:

```python
A = [99, 77, 33, 66, 55]
```

Minimum is `33`. Digit sum = `3 + 3 = 6`. Even → return `1`.

Answer: `1`.

## Edge Cases

- Check the minimum input size allowed by the constraints.
- Verify duplicate values or tie cases if the input can contain them.
- Keep the return value aligned with the exact failure case in the statement.

## Common Pitfalls

- Do not optimize away the invariant; the code should still make it clear what condition is being maintained.
- Prefer problem-specific names over one-letter variables once the logic becomes stateful.

## Implementation

```python
class Solution:
    def sumOfDigits(self, A: list[int]) -> int:
        m = min(A)
        digit_sum = sum(int(d) for d in str(m))
        return 1 if digit_sum % 2 == 0 else 0
```

## Testing

```python
def run_tests():
    s = Solution()

    assert s.sumOfDigits([34,23,1,24,75,33,54,8]) == 0
    assert s.sumOfDigits([99,77,33,66,55]) == 1

    print("all tests passed")

run_tests()
```

| Test | Expected | Why |
|---|---:|---|
| Min `1`, digit sum `1` | `0` | Odd digit sum |
| Min `33`, digit sum `6` | `1` | Even digit sum |

