2022 begins.
This commit is contained in:
parent
7717713bde
commit
79a6123526
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
*~
|
*~
|
||||||
|
*a.out
|
||||||
|
*main
|
||||||
|
102
2021/14/data
Normal file
102
2021/14/data
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
ONHOOSCKBSVHBNKFKSBK
|
||||||
|
|
||||||
|
HO -> B
|
||||||
|
KB -> O
|
||||||
|
PV -> B
|
||||||
|
BV -> C
|
||||||
|
HK -> N
|
||||||
|
FK -> H
|
||||||
|
NV -> C
|
||||||
|
PF -> K
|
||||||
|
FV -> B
|
||||||
|
NH -> P
|
||||||
|
CO -> N
|
||||||
|
HV -> P
|
||||||
|
OH -> H
|
||||||
|
BC -> H
|
||||||
|
SP -> C
|
||||||
|
OK -> F
|
||||||
|
KH -> N
|
||||||
|
HB -> V
|
||||||
|
FP -> N
|
||||||
|
KP -> O
|
||||||
|
FB -> O
|
||||||
|
FH -> F
|
||||||
|
CN -> K
|
||||||
|
BP -> P
|
||||||
|
SF -> O
|
||||||
|
CK -> K
|
||||||
|
KN -> O
|
||||||
|
VK -> C
|
||||||
|
HP -> N
|
||||||
|
KK -> V
|
||||||
|
KO -> C
|
||||||
|
OO -> P
|
||||||
|
BH -> B
|
||||||
|
OC -> O
|
||||||
|
HC -> V
|
||||||
|
HS -> O
|
||||||
|
SH -> V
|
||||||
|
SO -> C
|
||||||
|
FS -> N
|
||||||
|
CH -> O
|
||||||
|
PC -> O
|
||||||
|
FC -> S
|
||||||
|
VO -> H
|
||||||
|
NS -> H
|
||||||
|
PH -> C
|
||||||
|
SS -> F
|
||||||
|
BN -> B
|
||||||
|
BF -> F
|
||||||
|
NC -> F
|
||||||
|
CS -> F
|
||||||
|
NN -> O
|
||||||
|
FF -> P
|
||||||
|
OF -> H
|
||||||
|
NF -> O
|
||||||
|
SC -> F
|
||||||
|
KC -> F
|
||||||
|
CP -> H
|
||||||
|
CF -> K
|
||||||
|
BS -> S
|
||||||
|
HN -> K
|
||||||
|
CB -> P
|
||||||
|
PB -> V
|
||||||
|
VP -> C
|
||||||
|
OS -> C
|
||||||
|
FN -> B
|
||||||
|
NB -> V
|
||||||
|
BB -> C
|
||||||
|
BK -> V
|
||||||
|
VF -> V
|
||||||
|
VC -> O
|
||||||
|
NO -> K
|
||||||
|
KF -> P
|
||||||
|
FO -> C
|
||||||
|
OB -> K
|
||||||
|
ON -> S
|
||||||
|
BO -> V
|
||||||
|
KV -> H
|
||||||
|
CC -> O
|
||||||
|
HF -> N
|
||||||
|
VS -> S
|
||||||
|
PN -> P
|
||||||
|
SK -> F
|
||||||
|
PO -> V
|
||||||
|
HH -> F
|
||||||
|
VV -> N
|
||||||
|
VH -> N
|
||||||
|
SV -> S
|
||||||
|
CV -> B
|
||||||
|
KS -> K
|
||||||
|
PS -> V
|
||||||
|
OV -> S
|
||||||
|
SB -> V
|
||||||
|
NP -> K
|
||||||
|
SN -> C
|
||||||
|
NK -> O
|
||||||
|
PK -> F
|
||||||
|
VN -> P
|
||||||
|
PP -> K
|
||||||
|
VB -> C
|
||||||
|
OP -> P
|
18
2021/14/example_data
Normal file
18
2021/14/example_data
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
NNCB
|
||||||
|
|
||||||
|
CH -> B
|
||||||
|
HH -> N
|
||||||
|
CB -> H
|
||||||
|
NH -> C
|
||||||
|
HB -> C
|
||||||
|
HC -> B
|
||||||
|
HN -> C
|
||||||
|
NN -> C
|
||||||
|
BH -> H
|
||||||
|
NC -> B
|
||||||
|
NB -> B
|
||||||
|
BN -> B
|
||||||
|
BB -> N
|
||||||
|
BC -> B
|
||||||
|
CC -> N
|
||||||
|
CN -> C
|
45
2021/14/main.py
Normal file
45
2021/14/main.py
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
str = ''
|
||||||
|
data = {}
|
||||||
|
letters = []
|
||||||
|
with open('data', 'r') as fp:
|
||||||
|
for line in fp:
|
||||||
|
if(' -> ' in line):
|
||||||
|
pair = line.strip().split(' -> ')
|
||||||
|
data[pair[0]] = pair[1]
|
||||||
|
elif(len(line) > 1):
|
||||||
|
str = line.strip()
|
||||||
|
|
||||||
|
for ch in str:
|
||||||
|
if(not ch in letters):
|
||||||
|
letters.append(ch)
|
||||||
|
letters.sort()
|
||||||
|
|
||||||
|
# # DEBUG(dev):
|
||||||
|
# print(data)
|
||||||
|
# print(str)
|
||||||
|
# print(letters)
|
||||||
|
|
||||||
|
for step in range(0, 40):
|
||||||
|
print('BEFORE:', str)
|
||||||
|
new_str = ''
|
||||||
|
for i in range(0, len(str) - 1):
|
||||||
|
lookup = str[i:i+2]
|
||||||
|
print(lookup)
|
||||||
|
if(lookup in data.keys()):
|
||||||
|
new_str += str[i] + data[lookup]
|
||||||
|
else:
|
||||||
|
new_str += str[i]
|
||||||
|
new_str += str[-1]
|
||||||
|
str = new_str
|
||||||
|
|
||||||
|
counts = {}
|
||||||
|
for ch in str:
|
||||||
|
if(ch in counts):
|
||||||
|
counts[ch] += 1
|
||||||
|
else:
|
||||||
|
counts[ch] = 1
|
||||||
|
|
||||||
|
counts_list = list(counts.values())
|
||||||
|
counts_list.sort()
|
||||||
|
|
||||||
|
print(counts_list[-1] - counts_list[0])
|
45
2021/14/main2.py
Normal file
45
2021/14/main2.py
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
str = ''
|
||||||
|
data = {}
|
||||||
|
letters = []
|
||||||
|
with open('data', 'r') as fp:
|
||||||
|
for line in fp:
|
||||||
|
if(' -> ' in line):
|
||||||
|
pair = line.strip().split(' -> ')
|
||||||
|
data[pair[0]] = pair[1]
|
||||||
|
elif(len(line) > 1):
|
||||||
|
str = line.strip()
|
||||||
|
|
||||||
|
for ch in str:
|
||||||
|
if(not ch in letters):
|
||||||
|
letters.append(ch)
|
||||||
|
letters.sort()
|
||||||
|
|
||||||
|
# # DEBUG(dev):
|
||||||
|
# print(data)
|
||||||
|
# print(str)
|
||||||
|
# print(letters)
|
||||||
|
|
||||||
|
for step in range(0, 40):
|
||||||
|
new_str = ''
|
||||||
|
for i in range(0, len(str) - 1):
|
||||||
|
lookup = str[i:i+2]
|
||||||
|
if(lookup in data.keys()):
|
||||||
|
new_str += str[i] + data[lookup]
|
||||||
|
else:
|
||||||
|
new_str += str[i]
|
||||||
|
new_str += str[-1]
|
||||||
|
str = new_str
|
||||||
|
print('Step ', step+1, ', length', len(str))
|
||||||
|
|
||||||
|
# NOTE(dev): un-indent this (take it out of the for loop) for just a final answer
|
||||||
|
counts = {}
|
||||||
|
for ch in str:
|
||||||
|
if(ch in counts):
|
||||||
|
counts[ch] += 1
|
||||||
|
else:
|
||||||
|
counts[ch] = 1
|
||||||
|
|
||||||
|
counts_list = list(counts.values())
|
||||||
|
counts_list.sort()
|
||||||
|
|
||||||
|
print(counts_list, counts_list[-1] - counts_list[0])
|
100
2021/15/data
Normal file
100
2021/15/data
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
9165985876154699219988192797299938946759548993842382179897895847959995468789384779887969965834298757
|
||||||
|
9998264799399739852669159899969915752881369928979589425659869512849898348591988899941938989958981368
|
||||||
|
8899439372928798295981284899995498957198997822776999766989269673341115866632499916582179985999797178
|
||||||
|
9421373314798816327241583824298987799745811978869899899899999689988933652499891999899718759652641398
|
||||||
|
9949959989598519929632977671926983547787167773939739198988988851889519228348573848979828599971727943
|
||||||
|
2989192448779756984992587956689999842746119939998567894718899918799954281648927282191699499764931166
|
||||||
|
9536499426969676189784443598979559899499773119978188394689557995599331996979736693529419681251956996
|
||||||
|
1751936936954979779895998917863998697858138691879749999727789764741997539275579593798975539798818972
|
||||||
|
7274746616894977772987689459988988891794769772199789185982726479992789563994126143759648659653627929
|
||||||
|
9768211178649269995923493912176968666679999859829913848396992289798892197419967914777851877899477278
|
||||||
|
9548265381888989898295865115497574817515178999881998168798969539989897979118423366393898169329939816
|
||||||
|
5346816194398971492996938739782725986596757996472498951666679779287752997484725936582558299359964812
|
||||||
|
2169889968977588483272986596967998729999883958728879796999737989942928997399898577324799379798165679
|
||||||
|
5756791285489939716695977945746649394898965799971791856215827997699758829299499895496993375817688889
|
||||||
|
1189911823962199612255959754716953775367595418858921381973577497988994381699599376948136788285998274
|
||||||
|
6979939299876267486998569159464199464965974658469723835541132825855912999935783995325776519991867869
|
||||||
|
7829881839997878488734339898145124968389716637926975397882799631985728918519668146942356911683694975
|
||||||
|
4973997156985297758563699888285794535932928974966978296562139199889893476728999942416259889912711471
|
||||||
|
9534797994999788999759474799734844192166842694971197691854895641895188586895455192589986798997913693
|
||||||
|
2819784988295365719599997589858664998979399989735399884134499895873389479651295996498866989999839974
|
||||||
|
6129944129969453989699888866976269999128469799982997963676678293639494188967181417362922546475281598
|
||||||
|
9716591619494494558731969871917781639763288288691962634219628479989988828962651246459129568974491171
|
||||||
|
7894482759988943587818779691955666934841799931371572868778856815865991124376396974593984947897442991
|
||||||
|
1858394839149329949299818139987736884848178995897668499996188998667699618978779495959989927996996397
|
||||||
|
9917119977481935978699197129381282957978683881779735689583195993458959989897975199999285945815997999
|
||||||
|
1699128644295779552889817864638995225998895287579281281998594696644213479297199692979781937997179875
|
||||||
|
8289472999575769888986161678994171392789714988719932799199558696689379278929798887977551878788398787
|
||||||
|
9175199787918919864185866129967892999898318993291829953849829788999738939999469848949591989149962712
|
||||||
|
6199185639948988878676462732119197225882925435874993975768952939825978994996892549999699984912695356
|
||||||
|
3396488583898545189449831859997919671368765298895692847986994925119921865818912189499168979958896494
|
||||||
|
9938398336984195997576689194134985999635325783571526493894394589917988793989755746999698829649589393
|
||||||
|
6985999497989855798918845568728129349777627978979362788359497952698956998292996918648692699694349887
|
||||||
|
1983998898992942689898989791697792913121476987631657959299998868769559979688918876893688862439185197
|
||||||
|
7357776772998794811999929459919571597899775797198394831478974157594549666253368399586349899987699999
|
||||||
|
7959339994696971922632949191545959757987989979787788169979748972545188912811999284691666989915589771
|
||||||
|
9759961834557989443271499976572889278289319995879484972649589489199519573998999779383692242897767588
|
||||||
|
9179641759649515678926897874488858988897787895855979191899776967749898123692484838554413919817918963
|
||||||
|
6839761379993114699928685489349481791394595895995488717149328139993956495742445794747189959976877649
|
||||||
|
7719888678899926948979191678165949542927483596385943836398298659699148778343914768999898197267997991
|
||||||
|
8769727958885176392169934146934172488871783986753744485932511888999799159194751538987186924419884479
|
||||||
|
8991999992999929999897984599767977994699827768813861298818993288386943869782797583698682188885283399
|
||||||
|
7618891897968939798498999399278379698962758659288163913969875574557443483997692961986999939899819481
|
||||||
|
8879168556577788339549879912587944289995777798881688244889799389891799876819699576957557971877898128
|
||||||
|
9291695492736749179768777989972456198819896897386591181956469899994155718299785968686938589318979479
|
||||||
|
7795999789358882518386787487224292238877893956695912892699678996798249199324897986249725799479399977
|
||||||
|
7157587585956489829119899759896997988918879818491999931184192141949199172799356679472486896195864474
|
||||||
|
8369998998796539973399979987949986863639829688617494995142799799778639869918868177475771699198897648
|
||||||
|
6597979998999646797717999135983617949772192975367951599248888799957499785994774771558359664883693989
|
||||||
|
8494399497884369731998936499887638658943929616778716995355827188745777858983426799559721799739362629
|
||||||
|
7988688889359569698815957687229757873596999199938929146584679599188685439814466838789683219554419476
|
||||||
|
9247298485768968989794782295879689497761879956994316114992795924987262939579993889586584967699911179
|
||||||
|
9585318399982677997578979671589977319169586337196999959189521499887711992343851295981988819951696391
|
||||||
|
9688419987598317988779256198579659993398274893319912676925791429994831998147985462785322692958417991
|
||||||
|
9162526572947889939619891135679859992512868978725888837198497899147199825914711544192984934699878858
|
||||||
|
9997992172487298739215471619688889939819838188921969391991648949979166298795194179866892977317488668
|
||||||
|
4342969513889787361777751972798659462495119377122327857968869995779944989446988786669168689799978198
|
||||||
|
9991989792887933999782849992885388199539897175961949179928388186994694998865752811971681796835228899
|
||||||
|
9689884899572994167989994913659819996941825788877898819911788969419991277989227389959829597962878797
|
||||||
|
9919879157714445923163829999735888889724892834556637899899999974386932299127993655996239789769999544
|
||||||
|
8158429263197997788393974998999939783878693949897825898975995959979986635699272784592895953298769979
|
||||||
|
6933156399191389719992767671896649494989689977121886269912939799779176467784638649979932992778611947
|
||||||
|
9937886748328953482685979758934658999819989845699372899934596991259755741819979779889881397565568579
|
||||||
|
6628287411551868899648999511774894539834357749799788481594933187788979179772699757813897655969637759
|
||||||
|
1681758889993977881987844998586378799289969999542735618971489988849699628668119898999679199493949189
|
||||||
|
7756952966791755589777886975949697297729368719914568929921989979278297994486928996985666791996513546
|
||||||
|
7959939142776881868999785876799728991368773296952962918971941199687791336941297836969992566198117899
|
||||||
|
9919799591383641992451999795686291882995991159937526287799259396499782592953878378919512331399769295
|
||||||
|
9979988697799299993248298599458499952548969526718987894849849961566959196296836979299696595499951269
|
||||||
|
8989115299788834687596939899183482448889849883899881337161943668283395379982966119363885868799817686
|
||||||
|
3917979748934696925996487991958936699899582264499928897937594999993391587881813378359971812919779972
|
||||||
|
7798825938413749319999785941489868587674397449269738978317389938919984622199581498529938819682972471
|
||||||
|
7749948181969657924978787838596695869966969369158962427829991499668977295896254897998989743989952389
|
||||||
|
6398998955793159938819887788968371888968395499298999755899949268632898528951445886293997299392969779
|
||||||
|
9539983773686993498991392899889572558299175987819981797981886747694169489893727157979378595839496298
|
||||||
|
9599999287193787789729986389617989992374479972959749982818939999895692869845931449861767839389829149
|
||||||
|
4889176836968695418797941267779399488818276299865898498649489796971967884999112828966259271689857259
|
||||||
|
7139139187955994831738585298962698949981181887589699969919418116293969946431635243579918986885919619
|
||||||
|
7935837589876972417397869798312741789988882795986987744696696629647813993997762979599189148298958581
|
||||||
|
8791284382878199766798982957837371997961791491996313339915819373928948979938596612197699691473969914
|
||||||
|
1372974376943738718696489825854989786382983999879965536283589995655483569334269859559761199879679291
|
||||||
|
9719671746885959293824693968698399315424948599622489865269469961617669916732853892695261177787994496
|
||||||
|
7849319899791243818799879975258532467699699999398269787199341236894749619399991856788917729181194197
|
||||||
|
9148263323757681139949799197198549259446781912979561927929891898923997238737858757915394778591127667
|
||||||
|
1945591989843987198391756487965892217958111951642219915715439797998675786222936815998966826782589594
|
||||||
|
5254778838276178988551266998775337643868756772978159294191819424888551874271745598136847865594999289
|
||||||
|
3998557499888479397893111869792537426834985941959185929798919875628859952429849886849639853349182496
|
||||||
|
8958877677623879221669563361998988956937492798913659491897715599879989983979859984661929198589817564
|
||||||
|
9989969281947994946512996153988898382127889834868897498898867797998892148557494839482788798269898496
|
||||||
|
9779851919689459958899912662756981619298821434879339749956713988385759469959788279765789991925947918
|
||||||
|
4196471827218751217999955385399979199189581896987488518319752529829892282899638773984698854832217793
|
||||||
|
5968399569814182278918739959691249997958587277596698779311494824187981838837892479347738267879912541
|
||||||
|
8659894118598996577145167494795592898597175979829589886499183913197276893979278479678988218798894991
|
||||||
|
6649277899864442637895792699719172999998662937819979979769821897696686788719291967114346689819212978
|
||||||
|
6699889979874997773889958977455779952988466968759738452847569993821963796198741514377779188577811889
|
||||||
|
1173976886399735895884999486498511998399588328832288555979166889776686858695414825689877994898917949
|
||||||
|
9629147139882191719857926675389957799296279989442991999622669639755767892922474778888299984452999898
|
||||||
|
4391879947595258989144156986799899833458894496218777872997391217987623967998848296898891312888421579
|
||||||
|
9362699299759899879589911968947655251988997896874791778876389919939496782959848979971163281597161779
|
||||||
|
1652179878596567755189593919723287659886989991199789326995581692999815373488857495418291969165215199
|
||||||
|
9788389477191759669998798979888832998683445278988415997594187969167388689899997659918914818788982937
|
10
2021/15/example_data
Normal file
10
2021/15/example_data
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
1163751742
|
||||||
|
1381373672
|
||||||
|
2136511328
|
||||||
|
3694931569
|
||||||
|
7463417111
|
||||||
|
1319128137
|
||||||
|
1359912421
|
||||||
|
3125421639
|
||||||
|
1293138521
|
||||||
|
2311944581
|
12
2021/15/main.py
Normal file
12
2021/15/main.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
class Point:
|
||||||
|
shortest_path = []
|
||||||
|
|
||||||
|
data = []
|
||||||
|
for line in open('example_data', 'r'):
|
||||||
|
data_row = []
|
||||||
|
for ch in line.strip():
|
||||||
|
data_row.append(ch)
|
||||||
|
data.append(data_row)
|
||||||
|
|
||||||
|
for row in data:
|
||||||
|
print(row)
|
2238
2022/1/data.txt
Normal file
2238
2022/1/data.txt
Normal file
File diff suppressed because it is too large
Load Diff
57
2022/1/main.cpp
Normal file
57
2022/1/main.cpp
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
#include <algorithm>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
std::ifstream ifs("data.txt");
|
||||||
|
if(!ifs.is_open())
|
||||||
|
{
|
||||||
|
std::cerr << "Couldn't open file." << std::endl;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool last_line_blank = false;
|
||||||
|
|
||||||
|
std::vector<long> numbers;
|
||||||
|
long total = 0;
|
||||||
|
long most = 0;
|
||||||
|
for(std::string line; std::getline(ifs, line); )
|
||||||
|
{
|
||||||
|
if(line == "")
|
||||||
|
{
|
||||||
|
if(!last_line_blank)
|
||||||
|
{
|
||||||
|
numbers.push_back(total);
|
||||||
|
if(total > most)
|
||||||
|
most = total;
|
||||||
|
total = 0;
|
||||||
|
}
|
||||||
|
last_line_blank = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
last_line_blank = false;
|
||||||
|
total += std::atoi(line.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cout << "Most: " << most << std::endl;
|
||||||
|
|
||||||
|
std::sort(numbers.begin(), numbers.end());
|
||||||
|
|
||||||
|
if(numbers.size())
|
||||||
|
{
|
||||||
|
int three = 3;
|
||||||
|
long total_total = 0;
|
||||||
|
for(int i = numbers.size() - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
if(three-- > 0)
|
||||||
|
total_total += numbers[i];
|
||||||
|
}
|
||||||
|
std::cout << "Top 3: " << total_total << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
38
2022/1/main.rs
Normal file
38
2022/1/main.rs
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
use std::fs;
|
||||||
|
|
||||||
|
fn main()
|
||||||
|
{
|
||||||
|
let contents = fs::read_to_string("data.txt")
|
||||||
|
.expect("Could not find data.txt.");
|
||||||
|
|
||||||
|
let mut numbers = Vec::new();
|
||||||
|
let mut total = 0;
|
||||||
|
let mut max = 0;
|
||||||
|
for line in contents.split('\n')
|
||||||
|
{
|
||||||
|
if line == ""
|
||||||
|
{
|
||||||
|
if total > max
|
||||||
|
{
|
||||||
|
max = total;
|
||||||
|
}
|
||||||
|
numbers.push(total);
|
||||||
|
total = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
let i = line.parse::<i32>().unwrap();
|
||||||
|
total += i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("Max: {max}");
|
||||||
|
|
||||||
|
numbers.sort();
|
||||||
|
let mut top_three = 0;
|
||||||
|
for amt in &numbers[numbers.len() - 3..numbers.len()]
|
||||||
|
{
|
||||||
|
top_three += amt;
|
||||||
|
}
|
||||||
|
println!("Top Three: {top_three}");
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user