Day 03 p1
Reafctored code to split logic into function to reuse for p2 Signed-off-by: Eoghan Conlon <git@eoghanconlon.ie>
This commit is contained in:
parent
c653c05a06
commit
67dd1ee1e5
1 changed files with 47 additions and 80 deletions
127
src/Day03.java
127
src/Day03.java
|
@ -12,46 +12,7 @@ public class Day03 extends Input {
|
||||||
int rValue = 0;
|
int rValue = 0;
|
||||||
|
|
||||||
for(String input : this.input.getSample_input()) {
|
for(String input : this.input.getSample_input()) {
|
||||||
String pattern = "mul(";
|
rValue += getMul(input);
|
||||||
String num1_s = "";
|
|
||||||
String num2_s = "";
|
|
||||||
String nums = "0123456789";
|
|
||||||
int num = 1;
|
|
||||||
int pattern_cnt = 0;
|
|
||||||
for (int i = 0; i < input.length(); i += 1) {
|
|
||||||
if (pattern_cnt != pattern.length()) {
|
|
||||||
if (input.charAt(i) == pattern.charAt(pattern_cnt)) {
|
|
||||||
pattern_cnt += 1;
|
|
||||||
} else {
|
|
||||||
pattern_cnt = 0;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (nums.contains(Character.toString(input.charAt(i)))) {
|
|
||||||
if (num == 1) {
|
|
||||||
num1_s += input.charAt(i);
|
|
||||||
} else if (num == 2) {
|
|
||||||
num2_s += input.charAt(i);
|
|
||||||
} else {
|
|
||||||
System.err.println("Something went wrong");
|
|
||||||
}
|
|
||||||
} else if (input.charAt(i) == ',' && num == 1) {
|
|
||||||
num += 1;
|
|
||||||
} else if (input.charAt(i) == ')' && num == 2) {
|
|
||||||
int num1 = Integer.parseInt(num1_s);
|
|
||||||
int num2 = Integer.parseInt(num2_s);
|
|
||||||
rValue += (num1 * num2);
|
|
||||||
num = 1;
|
|
||||||
pattern_cnt = 0;
|
|
||||||
num1_s = "";
|
|
||||||
num2_s = "";
|
|
||||||
} else {
|
|
||||||
num = 1;
|
|
||||||
pattern_cnt = 0;
|
|
||||||
num1_s = "";
|
|
||||||
num2_s = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return rValue;
|
return rValue;
|
||||||
|
@ -61,48 +22,54 @@ public class Day03 extends Input {
|
||||||
int rValue = 0;
|
int rValue = 0;
|
||||||
|
|
||||||
for(String input : this.input.getInput()) {
|
for(String input : this.input.getInput()) {
|
||||||
String pattern = "mul(";
|
rValue += getMul(input);
|
||||||
String num1_s = "";
|
|
||||||
String num2_s = "";
|
|
||||||
String nums = "0123456789";
|
|
||||||
int num = 1;
|
|
||||||
int pattern_cnt = 0;
|
|
||||||
for (int i = 0; i < input.length(); i += 1) {
|
|
||||||
if (pattern_cnt != pattern.length()) {
|
|
||||||
if (input.charAt(i) == pattern.charAt(pattern_cnt)) {
|
|
||||||
pattern_cnt += 1;
|
|
||||||
} else {
|
|
||||||
pattern_cnt = 0;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (nums.contains(Character.toString(input.charAt(i)))) {
|
|
||||||
if (num == 1) {
|
|
||||||
num1_s += input.charAt(i);
|
|
||||||
} else if (num == 2) {
|
|
||||||
num2_s += input.charAt(i);
|
|
||||||
} else {
|
|
||||||
System.err.println("Something went wrong");
|
|
||||||
}
|
|
||||||
} else if (input.charAt(i) == ',' && num == 1) {
|
|
||||||
num += 1;
|
|
||||||
} else if (input.charAt(i) == ')' && num == 2) {
|
|
||||||
int num1 = Integer.parseInt(num1_s);
|
|
||||||
int num2 = Integer.parseInt(num2_s);
|
|
||||||
rValue += (num1 * num2);
|
|
||||||
num = 1;
|
|
||||||
pattern_cnt = 0;
|
|
||||||
num1_s = "";
|
|
||||||
num2_s = "";
|
|
||||||
} else {
|
|
||||||
num = 1;
|
|
||||||
pattern_cnt = 0;
|
|
||||||
num1_s = "";
|
|
||||||
num2_s = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return rValue;
|
return rValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getMul(String input){
|
||||||
|
int rValue = 0;
|
||||||
|
String pattern = "mul(";
|
||||||
|
String num1_s = "";
|
||||||
|
String num2_s = "";
|
||||||
|
String nums = "0123456789";
|
||||||
|
int num = 1;
|
||||||
|
int pattern_cnt = 0;
|
||||||
|
for (int i = 0; i < input.length(); i += 1) {
|
||||||
|
if (pattern_cnt != pattern.length()) {
|
||||||
|
if (input.charAt(i) == pattern.charAt(pattern_cnt)) {
|
||||||
|
pattern_cnt += 1;
|
||||||
|
} else {
|
||||||
|
pattern_cnt = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (nums.contains(Character.toString(input.charAt(i)))) {
|
||||||
|
if (num == 1) {
|
||||||
|
num1_s += input.charAt(i);
|
||||||
|
} else if (num == 2) {
|
||||||
|
num2_s += input.charAt(i);
|
||||||
|
} else {
|
||||||
|
System.err.println("Something went wrong");
|
||||||
|
}
|
||||||
|
} else if (input.charAt(i) == ',' && num == 1) {
|
||||||
|
num += 1;
|
||||||
|
} else if (input.charAt(i) == ')' && num == 2) {
|
||||||
|
int num1 = Integer.parseInt(num1_s);
|
||||||
|
int num2 = Integer.parseInt(num2_s);
|
||||||
|
rValue += (num1 * num2);
|
||||||
|
num = 1;
|
||||||
|
pattern_cnt = 0;
|
||||||
|
num1_s = "";
|
||||||
|
num2_s = "";
|
||||||
|
} else {
|
||||||
|
num = 1;
|
||||||
|
pattern_cnt = 0;
|
||||||
|
num1_s = "";
|
||||||
|
num2_s = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return rValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue