Python simple solution with comments and beats 80%
```\n\'\'\'\nThis is relatively simple\n\n1. Convert target to minutes and seconds and get the string representation\n2. Since seconds can exceed 60, it may be 
```\n\'\'\'\nThis is relatively simple\n\n1. Convert target to minutes and seconds and get the string representation\n2. Since seconds can exceed 60, it may be possible to get a shorter string representation by increasing seconds by 60 and decreasing the \n\tminutes by 1. \n3. For each string representation calculate cost and return the minimum of the two\n4. Edge case: If the number of minutes is greater than 100 the cost can be set to inf\n\n\'\'\'\nclass Solution:\n    def minCostSetTime(self, startAt: int, moveCost: int, pushCost: int, targetSeconds: int) -> int:\n        mins = targetSeconds//60\n        secs = targetSeconds%60\n        \n        def getCost(s, startAt, moveCost, pushCost):\n            if len(s) > 4:\n                return float("inf")\n            cost = len(s)*pushCost\n            for ch in s:\n                if ch != startAt:\n                    cost += moveCost\n                startAt = ch\n            return cost\n        \n        def getStringRepresentation(mins, secs):\n            s = ""\n            if mins > 0:\n                s  += str(mins)\n            if secs < 10 and mins > 0:\n                s += "0"+str(secs) # Note this step. Obvious but important\n            else:\n                s += str(secs)\n                \n            return s\n        \n        s1 = getStringRepresentation(mins, secs)\n        c1 = getCost(s1, str(startAt), moveCost, pushCost)\n        \n        if secs + 60 < 100 and mins > 0:\n            secs += 60\n            mins -= 1\n            \n        s2 = getStringRepresentation(mins, secs)\n        if s1 != s2:\n            c2 = getCost(s2, str(startAt), moveCost, pushCost)\n            return min(c1, c2)\n        return c1
[]