* day03
parent
2b04ab0cbe
commit
8a1ce1e0f5
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,78 @@
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class day03 {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws IOException {
|
||||||
|
String gammaCalc = "";
|
||||||
|
String epsilonCalc = "";
|
||||||
|
int gammaVal = 0;
|
||||||
|
int epsilonVal = 0;
|
||||||
|
|
||||||
|
int finalAns = 0;
|
||||||
|
|
||||||
|
String line;
|
||||||
|
|
||||||
|
BufferedReader in = new BufferedReader(new FileReader("day03-input.txt"));
|
||||||
|
line = in.readLine();
|
||||||
|
|
||||||
|
int numLengthHuman = line.length();
|
||||||
|
|
||||||
|
// [0] will not have anything i think
|
||||||
|
int[] zeroCounter = new int[numLengthHuman + 1];
|
||||||
|
int[] oneCounter = new int[numLengthHuman + 1];
|
||||||
|
// temporary var, concat into an int for gammaVal/ epsilonVal.
|
||||||
|
String[] tempC = new String[numLengthHuman + 1];
|
||||||
|
|
||||||
|
while (line != null) {
|
||||||
|
|
||||||
|
for (int i = 1; i <= line.length(); i++) {
|
||||||
|
|
||||||
|
int currentNum = Integer.valueOf(line.substring(i - 1, i));
|
||||||
|
|
||||||
|
if (currentNum == 0) {
|
||||||
|
zeroCounter[i]++;
|
||||||
|
}
|
||||||
|
if (currentNum == 1) {
|
||||||
|
oneCounter[i]++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
line = in.readLine();
|
||||||
|
}
|
||||||
|
in.close();
|
||||||
|
|
||||||
|
// calc gamma
|
||||||
|
for (int i = 1; i <= numLengthHuman; i++) {
|
||||||
|
|
||||||
|
if (zeroCounter[i] > oneCounter[i]) {
|
||||||
|
tempC[i] = "0";
|
||||||
|
} else {
|
||||||
|
tempC[i] = "1";
|
||||||
|
}
|
||||||
|
|
||||||
|
gammaCalc = gammaCalc + tempC[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
gammaVal = Integer.parseInt(gammaCalc, 2); // some weird conversion thing?
|
||||||
|
|
||||||
|
// calc epsilon
|
||||||
|
for (int i = 1; i <= numLengthHuman; i++) {
|
||||||
|
|
||||||
|
if (zeroCounter[i] > oneCounter[i]) {
|
||||||
|
tempC[i] = "1"; // this time, one is the least
|
||||||
|
} else {
|
||||||
|
tempC[i] = "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
epsilonCalc = epsilonCalc + tempC[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
epsilonVal = Integer.parseInt(epsilonCalc, 2);
|
||||||
|
|
||||||
|
finalAns = gammaVal * epsilonVal;
|
||||||
|
System.out.println(finalAns);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue