Advertisement
Guest User

Untitled

a guest
Dec 1st, 2019
821
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.54 KB | None | 0 0
  1. package Advent2019;
  2.  
  3. import util.AdventOfCode;
  4.  
  5. import java.util.List;
  6.  
  7. public class Day2 extends AdventOfCode {
  8.     int[] register;
  9.  
  10.     public Day2(List<String> input) {
  11.         super(input);
  12.         title = "";
  13.         part1Description = "";
  14.         part2Description = "";
  15.     }
  16.  
  17.     void runProgram(int noun, int verb) {
  18.         int pos = 0;
  19.         register[1] = noun;
  20.         register[2] = verb;
  21.         while (register[pos] != 99) {
  22.             if (register[pos] == 1) {
  23.                 register[register[pos + 3]] = register[register[pos + 1]] + register[register[pos + 2]];
  24.             } else {
  25.                 register[register[pos + 3]] = register[register[pos + 1]] * register[register[pos + 2]];
  26.             }
  27.             pos += 4;
  28.         }
  29.     }
  30.  
  31.     @Override
  32.     public Object part1() {
  33.         runProgram(12, 2);
  34.         return register[0];
  35.     }
  36.  
  37.     @Override
  38.     public Object part2() {
  39.  
  40.         // brute force, why not
  41.         for (int i = 0; i < 100; i++) {
  42.             for (int j = 0; j < 100; j++) {
  43.                 parse();
  44.                 runProgram(i, j);
  45.                 if (register[0] == 19690720) return 100 * register[1] + register[2];
  46.             }
  47.         }
  48.         return 0;
  49.     }
  50.  
  51.     @Override
  52.     public void parse() {
  53.         String[] inp = input.get(0).split(",");
  54.         //String inp[] = { "2", "4", "4", "5", "99", "0"};
  55.         register = new int[inp.length];
  56.         for (int i = 0; i < inp.length; i++) {
  57.             register[i] = Integer.parseInt(inp[i]);
  58.         }
  59.     }
  60.  
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement