09 Sept 2026•Go / Python / TypeScript•Easy

Minimum Cost to Move Chips to the Same Position

Find the minimum paid moves needed to bring all chips to one position under parity-based movement costs.

Moving by two is free, so all even positions are equivalent and all odd positions are equivalent. Pay to move the smaller parity group.

complexity

O(n) time and O(1) space.

solution files

  • Go minimum-cost-to-move-chips-to-the-same-position/solution.go
  • Python minimum-cost-to-move-chips-to-the-same-position/solution.py
  • TypeScript minimum-cost-to-move-chips-to-the-same-position/solution.ts

Solution files

Go•minimum-cost-to-move-chips-to-the-same-position/solution.go
package main

func minCostToMoveChips(position []int) int {
	odd := 0
	for _, value := range position {
		odd += value % 2
	}
	even := len(position) - odd
	if odd < even {
		return odd
	}
	return even
}
Python•minimum-cost-to-move-chips-to-the-same-position/solution.py
class Solution:
    def minCostToMoveChips(self, position: list[int]) -> int:
        odd = sum(value % class="syntax-number">2 for value in position)
        return min(odd, len(position) - odd)
TypeScript•minimum-cost-to-move-chips-to-the-same-position/solution.ts
function minCostToMoveChips(position: number[]): number {
  const odd = position.reduce((count, value) => count + (value % class="syntax-number">2), class="syntax-number">0);
  return Math.min(odd, position.length - odd);
}