NilsKirchhoff icon

AoC 2019 - Day 1 - ProcessingSketch

NilsKirchhoff | PRO | 12/01/19 06:19:22 AM UTC | 0 ⭐ | 520 👁️ | Never ⏰ | []
Java |

1.4 KB

|

None

|

0 👍

/

0 👎

String fileName = "input.txt";
BufferedReader reader;
 
void setup() {
    reader = createReader(fileName);
    println(day1_1());
    // answer 3371958
    reader = createReader(fileName);
    println(day1_2());
    //answer 5055050
}
 
int day1_1() {
  boolean ready = false;
  String line;
  int fuel = 0;
  while (!ready) {
    try {
      line = reader.readLine();
    }
    catch (IOException e) {
      line = null;
      ready = true;
    }    
    if (line == null) {
      ready = true;
    } else {
      int tempFuel = module(int(line));
      fuel += tempFuel;
    }
   }
   return fuel;
}
 
int day1_2() {
  IntList modules = new IntList();
  boolean ready = false;
  String line;
  int totalFuel = 0;
  int moduleFuel = 0;   
  
  while (!ready) {
    try {
      line = reader.readLine();
    }
    catch (IOException e) {
      line = null;
      ready = true;
    }    
    if(line != null) {
        //println(line);
        moduleFuel = module(int(line));
        int tempFuel = moduleFuel;
        while (tempFuel > 0) {
          tempFuel = module(tempFuel);
          if (tempFuel > 0)
            moduleFuel += tempFuel; 
        }
        modules.append(moduleFuel);
    } else {
      ready = true;
    }
  }
  for(int values : modules)
     totalFuel += values;
  return totalFuel;
}
 
int module(int fuel) {
  return floor(fuel / 3) - 2;
}

Comments