Пример #1
0
    private static int Solution2(string[] input)
    {
        string inputLine = input[0];

        int[]     inputs         = inputLine.Split(",").Select(i => int.Parse(i)).ToArray();
        const int ExpectedResult = 19690720;

        for (int noun = 0; noun < 100; noun++)
        {
            for (int verb = 0; verb < 100; verb++)
            {
                int[] newInputs = (int[])inputs.Clone();
                newInputs[1] = noun;
                newInputs[2] = verb;
                int result = IntcodeComputer.ExecuteIntcodeProgram(newInputs)[0];
                if (result == ExpectedResult)
                {
                    return(100 * noun + verb);
                }
                ;
            }
        }

        throw new Exception();
    }
Пример #2
0
    private static string Solution1(string[] input, int[] programInput)
    {
        string inputLine = input[0];

        int[] program = inputLine.Split(",").Select(i => int.Parse(i)).ToArray();

        int[] _ = IntcodeComputer.ExecuteIntcodeProgram(program, programInput, out int[] output);

        return(output[^ 1].ToString());
Пример #3
0
    private static int Solution1(string[] input, int[] programReplacements)
    {
        string inputLine = input[0];

        int[] inputs = inputLine.Split(",").Select(i => int.Parse(i)).ToArray();

        for (int i = 0; i < programReplacements.Length; i++)
        {
            inputs[i + 1] = programReplacements[i];
        }

        return(IntcodeComputer.ExecuteIntcodeProgram(inputs).First());
    }
Пример #4
0
 public void IntcodeComputerTests(int[] program, int[] input, int[] expected)
 {
     int[] actual = IntcodeComputer.ExecuteIntcodeProgram(program, input, out int[] _);
     Assert.Equal(expected, actual);
 }