Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Advent2019;
- import util.AdventOfCode;
- import java.util.List;
- public class Day2 extends AdventOfCode {
- int[] register;
- public Day2(List<String> input) {
- super(input);
- title = "";
- part1Description = "";
- part2Description = "";
- }
- void runProgram(int noun, int verb) {
- int pos = 0;
- register[1] = noun;
- register[2] = verb;
- while (register[pos] != 99) {
- if (register[pos] == 1) {
- register[register[pos + 3]] = register[register[pos + 1]] + register[register[pos + 2]];
- } else {
- register[register[pos + 3]] = register[register[pos + 1]] * register[register[pos + 2]];
- }
- pos += 4;
- }
- }
- @Override
- public Object part1() {
- runProgram(12, 2);
- return register[0];
- }
- @Override
- public Object part2() {
- // brute force, why not
- for (int i = 0; i < 100; i++) {
- for (int j = 0; j < 100; j++) {
- parse();
- runProgram(i, j);
- if (register[0] == 19690720) return 100 * register[1] + register[2];
- }
- }
- return 0;
- }
- @Override
- public void parse() {
- String[] inp = input.get(0).split(",");
- //String inp[] = { "2", "4", "4", "5", "99", "0"};
- register = new int[inp.length];
- for (int i = 0; i < inp.length; i++) {
- register[i] = Integer.parseInt(inp[i]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement