Skip to content

Commit 8a6799c

Browse files
committed
2015 day19 part 1
1 parent 5181c64 commit 8a6799c

File tree

2 files changed

+63
-1
lines changed

2 files changed

+63
-1
lines changed

2015/day19.cpp

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#include <iostream>
2+
#include <fstream>
3+
#include <set>
4+
#include <string>
5+
#include <vector>
6+
#include <map>
7+
8+
using namespace std;
9+
10+
map<string,int>dist;
11+
vector<string> findVec, replaceVec;
12+
int counter = 0, counterA = 0;
13+
string original;
14+
int minDepth = 100000,
15+
maxReplaceLen = 0;
16+
17+
int main()
18+
{
19+
// process input
20+
ifstream in("day19.in");
21+
string tempFind, tempReplace, tempWaste;
22+
while (true)
23+
{
24+
in >> tempFind >> tempWaste >> tempReplace;
25+
if (in.eof())
26+
{
27+
original = tempFind;
28+
break;
29+
}
30+
31+
findVec.push_back(tempFind);
32+
replaceVec.push_back(tempReplace);
33+
34+
if (maxReplaceLen < tempReplace.length())
35+
maxReplaceLen = tempReplace.length();
36+
}
37+
38+
// part 1: try all combos and track potentials in set
39+
set<string> replacements;
40+
string tempReplacement;
41+
for (int i = 0; i < original.length(); i++)
42+
{
43+
// try all replacements
44+
for (int j = 0; j < findVec.size(); j++)
45+
{
46+
if (findVec[j].length() + i > original.length()) continue;
47+
48+
if (original.substr(i, findVec[j].length()) == findVec[j])
49+
{
50+
tempReplacement = original;
51+
tempReplacement.replace(i, findVec[j].length(), replaceVec[j]);
52+
replacements.insert(tempReplacement);
53+
}
54+
}
55+
}
56+
57+
// output: part 1
58+
cout << "Part 1: " << replacements.size() << endl;
59+
60+
// close out and exit
61+
return 0;
62+
}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
| Event | Stars | Progress |
1818
| ------------- | ------------- | ------------- |
19-
| 2015 | 34 / 50 | :large_blue_circle: :large_blue_circle: :large_blue_circle: :large_blue_circle: :large_blue_circle: <br> :large_blue_circle: :large_blue_circle: :large_blue_circle: :large_blue_circle: :large_blue_circle: <br> :large_blue_circle: :yellow_circle: :large_blue_circle: :yellow_circle: :large_blue_circle: <br> :large_blue_circle: :large_blue_circle: :large_blue_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: |
19+
| 2015 | 35 / 50 | :large_blue_circle: :large_blue_circle: :large_blue_circle: :large_blue_circle: :large_blue_circle: <br> :large_blue_circle: :large_blue_circle: :large_blue_circle: :large_blue_circle: :large_blue_circle: <br> :large_blue_circle: :yellow_circle: :large_blue_circle: :yellow_circle: :large_blue_circle: <br> :large_blue_circle: :large_blue_circle: :large_blue_circle: :yellow_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: |
2020
| 2016 | 0 / 50 | :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: |
2121
| 2017 | 0 / 50 | :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: |
2222
| 2018 | 0 / 50 | :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: <br> :red_circle: :red_circle: :red_circle: :red_circle: :red_circle: |

0 commit comments

Comments
 (0)