func Copy(sourceIC *IntCode) *IntCode {
	copiedIC := *sourceIC

	copiedIC.memory = make([]int, len(sourceIC.memory))
	copy(copiedIC.memory, sourceIC.memory)

	return &copiedIC
}
// Copy does a deep copy of an intcode computer
Copy does a deep copy of an intcode computer
// Copy does a deep copy of an intcode computer
func Copy(sourceIC *IntCode) *IntCode {
	copiedIC := *sourceIC
	copiedIC.memory = make([]int, len(sourceIC.memory))
	copy(copiedIC.memory, sourceIC.memory)
	return &copiedIC
}
func Copy ( sourceIC * IntCode ) * IntCode { copiedIC := * sourceIC copiedIC . memory = make ( [ ] int , len ( sourceIC . memory ) ) copy ( copiedIC . memory , sourceIC . memory ) return & copiedIC }
Copy does a deep copy of an intcode computer
Copy does a deep copy of an intcode computer