LeetCode solutions

3276. Minimum Number of Pushes to Type Word II

My accepted Python solution to LeetCode problem 3276, Minimum Number of Pushes to Type Word II, running in 109ms.

  • Difficulty: Medium
  • Python
  • Runtime 109ms
  • Memory 17.8MB

Read the problem on LeetCode View on GitHub

Python

Accepted on LeetCode — runtime 109ms, memory 17.8MB, accepted 2026-01-02.

python
class Solution:
    def minimumPushes(self, word: str) -> int:
        from collections import Counter
        
        # Count frequency of each letter
        freq = Counter(word)
        
        # Sort frequencies in descending order
        frequencies = sorted(freq.values(), reverse=True)
        
        # Assign most frequent letters to first press position (8 keys available: 2-9)
        # First 8 letters: 1 press each
        # Next 8 letters: 2 presses each
        # And so on...
        
        total_pushes = 0
        for i, f in enumerate(frequencies):
            # Which press position is this letter in?
            press_count = (i // 8) + 1
            total_pushes += f * press_count
        
        return total_pushes

Source