Skip to content

Commit 426915b

Browse files
committed
Day 2
1 parent f56c0fc commit 426915b

File tree

4 files changed

+314
-1
lines changed

4 files changed

+314
-1
lines changed

1/star-2.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const findFrequency = (inputRows) => {
66
let currentFrequency = 0
77
const visitedFrequencies = []
88
while (true) {
9-
for (let row of inputRows) {
9+
for (const row of inputRows) {
1010
currentFrequency += parseInt(row)
1111
if (visitedFrequencies.includes(currentFrequency)) {
1212
return currentFrequency

2/input.txt

Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
oiwcdpbseqgxryfmlpktnupvza
2+
oiwddpbsuqhxryfmlgkznujvza
3+
ziwcdpbsechxrvfmlgktnujvza
4+
oiwcgpbseqhxryfmmgktnhjvza
5+
owwcdpbseqhxryfmlgktnqjvze
6+
oiscdkbseqhxrffmlgktnujvza
7+
oiwcdibseqoxrnfmlgktnujvza
8+
oiwcdpbsejhxryfmlektnujiza
9+
oewcdpbsephxryfmlgkwnujvza
10+
riwcdpbseqhxryfmlgktnujzaa
11+
omwcdpbseqwxryfmlgktnujvqa
12+
oiwcdqqneqhxryfmlgktnujvza
13+
oawcdvaseqhxryfmlgktnujvza
14+
oiwcdabseqhxcyfmlkktnujvza
15+
oiwcdpbseqhxryfmlrktrufvza
16+
oiwcdpbseqhxdyfmlgqtnujkza
17+
oiwcdpbseqhxrmfolgktnujvzy
18+
oiwcdpeseqhxnyfmlgktnejvza
19+
oiwcdpbseqhxrynmlaktlujvza
20+
oiwcdpbseqixryfmlektncjvza
21+
liwtdpbseqhxryfylgktnujvza
22+
ouwcdpbszqhxryfmlgktnajvza
23+
oiwzdpbseqhxryfmngktnujvga
24+
wiwcfpbseqhxryfmlgktnuhvza
25+
oiwcdpbselhfryfmlrktnujvza
26+
oywcdpbveqhxryfmlgktnujdza
27+
oiwcdpbsiqhxryfmqiktnujvza
28+
obwcdhbseqhxryfmlgktnujvqa
29+
oitcdpbseqhfryfmlyktnujvza
30+
oiwcdpbseqhxryfmlnutnujqza
31+
oiwcdpbseqhxnyfmlhktnujtza
32+
oiwcdpbseqhbryfmlgkunuwvza
33+
oiwcopbseqhiryfmlgktnkjvza
34+
oiwcdpsseqhxryfklrktnujvza
35+
oiwcdpsrsqhxryfmlgktnujvza
36+
oiwcdpbsyqrxryfmlgktnujvzc
37+
ojwcepbseqhxryfmlgktnujvfa
38+
oiwcdpbseqhxrlfmlgvtnujvzr
39+
oiycdpbsethsryfmlgktnujvza
40+
eiwcdpbseqwxryfmlgktnujcza
41+
oiocdpbseqhxryfxlgktaujvza
42+
qiwydpbseqhpryfmlgktnujvza
43+
ziwcdpbseqhxryfmlgktsuuvza
44+
oiwcdpbseqheryfmygxtnujvza
45+
oiwidpbseqhxryfulgktnujvzm
46+
oiscdpdseqhxryfmlgktnujvya
47+
oiwmypbseqhxryfmlgktnuxvza
48+
oizcwbbseqhxryfmlgktnujvza
49+
oiwcdpbseqpxryfmlgxfnujvza
50+
oiwpdpbscqhxryxmlgktnujvza
51+
oiwcdpbseqhxrifrlgkxnujvza
52+
oiwcdpbsrqhxrifmlgktnzjvza
53+
tiwcdpbseqhxryfmegkvjujvza
54+
oiwcddbseqhxryfingktnujvza
55+
oiwcdpbsiqhiryfmlgktnucvza
56+
oiwcipbseqhxrkfmlgktnuvvza
57+
kiwcdpbseqhxryfmlbkonujvza
58+
qiwcdhbsedhxryfmlgktnujvza
59+
siwcdpbseqhxryfmsgktnujvua
60+
oqwcdpbseqhxryfmlyktndjvza
61+
oiwcqnbseehxryfmlgktnujvza
62+
oiwcdybseqhxryfmlgbtnujvia
63+
oiwcdpbsejhxryfdlgktngjvza
64+
oawcdpbseqhxrbfmlkktnujvza
65+
oilcdpbseqhhrjfmlgktnujvza
66+
oibcdpbseqhxryfmngktnucvza
67+
niwcdpbseqhxryfmlgkuaujvza
68+
oiwcdpbseqhxryfmqgmtnujvha
69+
oiwcdpbseqhcryfxlgktnzjvza
70+
oiwcdpaseqhxryfmqgktnujvzl
71+
oiwcdpbseqhxjyfmlgkonujvzx
72+
oiwmdzbseqlxryfmlgktnujvza
73+
oiwhdpbsexhxryfmlgktnujvzw
74+
oiwctpbseqhxryfmlgktnummza
75+
oiwcdpbseqoxrydmlgktnujvoa
76+
oiwkdpvseqhxeyfmlgktnujvza
77+
oixcdpbsemhxryfmlgctnujvza
78+
oimcdpbseqhxryfmlgktnujvlr
79+
oiwcdpbseehxrywmlgktnejvza
80+
oiwcdpbseqoxhyfmlgktnujyza
81+
oiwcdpbsethxryfmlgktnrjvxa
82+
oiwcdpbxeqhxryfmlgktnrjvzb
83+
ogeadpbseqhxryfmlgktnujvza
84+
eiwcdpbseqhxryfmlgktnvuvza
85+
oiwcdpbseqhxryfmlgktnujaxv
86+
siwcdpbsuqhxryfmlgktnuavza
87+
oixcdpbseqhxryfmlgatnujvzy
88+
oiwcdpbzeghmryfmlgktnujvza
89+
oiwcdpbieqhxryfmlgktyujvzr
90+
oiwcdpbseqhxeyfhlgktngjvza
91+
oiwcdpbseqhjoyrmlgktnujvza
92+
iiwcdpbseqhxryfmwhktnujvza
93+
oixcdpbsiqhxryfmagktnujvza
94+
oiwcdpfljqhxryfmlgktnujvza
95+
oivcdpbseqhxrqfmlgktnujvca
96+
ovwcdpbseqhxzyfmlgkenujvza
97+
oiwxdpgseqhxryfmlgktnhjvza
98+
oibcdpbbeohxryfmlgktnujvza
99+
oiwcrpbseqhxrygmlgwtnujvza
100+
jiwcdpbseqkxryfmlgntnujvza
101+
oiwcdbbseqhxrywmlgktnujvra
102+
oiwcdpbteqyxoyfmlgktnujvza
103+
oiwcdjbsvqvxryfmlgktnujvza
104+
obwcdukseqhxryfmlgktnujvza
105+
oifcdpdseqhxryfmlgktnujsza
106+
oiwcdpbseqhxryfalgktnujyda
107+
oiwcwpbseqhxrnfmkgktnujvza
108+
oswcdpbsethcryfmlgktnujvza
109+
oiwcdpbieqhxryfmlgktnuoiza
110+
oiwcdibsehhxryfmzgktnujvza
111+
oisjdpbseqhxryfmfgktnujvza
112+
oiwcjpbseqkxqyfmlgktnujvza
113+
obwcdpbshqhgryfmlgktnujvza
114+
oiwcspbseqhxryxmlgktnujvzl
115+
oiwcdvbswqhxryfmlgklnujvza
116+
oiwcdhuseqhxryfmlgdtnujvza
117+
oiwcdpbkeqdxryfmlgktnujvzv
118+
oiwcdpzseqhxcyfmlgksnujvza
119+
oiwcdpbseqhxryfmbkkvnujvza
120+
qiwcdpbseqhxrnfmlgktnujvha
121+
okwcdpbseqhxryfmdgktgujvza
122+
oiwcdpbkeqhxryfmldktnujvzu
123+
oiwctpxseqhxgyfmlgktnujvza
124+
oiwcdpbseqhxrykmlgktnujita
125+
oiwcdpbseqhxryfmldktyujnza
126+
oiwcdpbszqhxrjfmlgktnuqvza
127+
oiwcdpbeeqhxrykmlgktnujrza
128+
oiwcvpbseqhxryhmlgwtnujvza
129+
oiwcdpbpeehxryfmlgktnujvzz
130+
oiwcdbbsxqhxyyfmlgktnujvza
131+
oiwkdpbseqhxryfplgktnujeza
132+
opwcdpbseqhxdyfmlgctnujvza
133+
oowcdpbseqhnryfmlgktnujvga
134+
oawzdibseqhxryfmlgktnujvza
135+
oiwcdpbfeqzxrjfmlgktnujvza
136+
oiwcdpbseqaxryfmlgkonulvza
137+
oiacdpbseqvxryfmlgktvujvza
138+
oiwudpbseqhxryfwlgktnujvka
139+
oiwcdpbjeqhxryfymgktnujvza
140+
oiwcdpbweqhxrynmlgktnujaza
141+
oiwcdpbseqdxryfclgvtnujvza
142+
oiwcdppseqhxryfmlgmtzujvza
143+
oiwcdpbseqhxrhfelektnujvza
144+
kiwcdpbsnqhxryfmegktnujvza
145+
oiwcdpbseqpxryfmlgzwnujvza
146+
eiwcdpbseqnxryfplgktnujvza
147+
oiwcdbbseqhxryfmlmktnujvha
148+
oiwcdpbseqhxryfmlgktjhjvka
149+
oiwcdpbseqhxnyfylgktnujvzs
150+
oiwcdpbbxqhxryfmzgktnujvza
151+
opwcdpbseqhfryfmlgktnujzza
152+
oiwcdpbsjqpxryfmtgktnujvza
153+
oiwcdpbseqhyqbfmlgktnujvza
154+
oxwcdpbseqhxrffmlgktiujvza
155+
oiwcdpbseqhxgyfmlgytnujvzq
156+
oiwidpbseqhxryfmlgxtnujvzd
157+
oiwcdpbshqhxryzmlpktnujvza
158+
oifcdpbseqbxryfmlgktdujvza
159+
biwcdzbseqhxtyfmlgktnujvza
160+
oiwcdpbswqhxryfmlgutnujvca
161+
xiwcdpbseqhxryxmlnktnujvza
162+
oiwcdpzseqhxryfrlgktdujvza
163+
oiwudpbseqhxryfmlgkqnurvza
164+
oiwqdpbseihiryfmlgktnujvza
165+
iiwjdpbseqhxryamlgktnujvza
166+
oiwcdplseqhqryfmmgktnujvza
167+
oiwcdppseqhxrmfmlgklnujvza
168+
oiwcdobseqhxryfmmgkttujvza
169+
odwcdpbseqhxryfmlgktnujvyk
170+
oiwcdpkseqhxrhfmlgktntjvza
171+
oiocdpbseqhxryfmlgjknujvza
172+
oiicdpbieqhxryfmlgksnujvza
173+
oiwcdpbseqhxryemlgktnujdla
174+
oiwcdpbseqdxryfmlgktsujvzt
175+
oiwcdcksnqhxryfmlgktnujvza
176+
oowcdpbseqhxryfmlgsfnujvza
177+
oawcdpbseqhxryfmljktnuevza
178+
oiwcdpbsaqhxrffmzgktnujvza
179+
oiwcipbseqhcryfmlgktnujvga
180+
oiwcdpbsewhxrbfmlgktnuuvza
181+
oiwcdpbsewhxryfmlgkunujvzc
182+
oiwcdpbseqhxryfmlgktiujkga
183+
jiwcdpbseqhxrlfmlgktnurvza
184+
tiwcdpbseqoxryfmliktnujvza
185+
oiwcdpbsenhxryfmlgkskujvza
186+
oiwcdpbseqhxvyfmlhktoujvza
187+
oiwcdpbseqhxeyfmlgmtnunvza
188+
oiwcdpbseqhxdyfmloktnujvzu
189+
oiwcdpbseqgxryfmlgkynejvza
190+
oudcdpbseqhxryfmlgktmujvza
191+
oiwcdpbseqhxryfmvgktnucvzc
192+
oiwcdpbseqhxrysalgwtnujvza
193+
odwodpbseqhgryfmlgktnujvza
194+
oiwcdpbseqheryzmlgktnujgza
195+
oiwcdpbseqhxryfalgwtnujvba
196+
oiwcdpbseqhxryfmlgtdnuhvza
197+
oiocdpbseqhxrefulgktnujvza
198+
kiwcdpbseqhxrywolgktnujvza
199+
niwcdpbseksxryfmlgktnujvza
200+
oiwcdybseqexryfalgktnujvza
201+
oiwcdpbbeqhxryamlgktnujpza
202+
oiecdqbseqhxryfmlgktnujcza
203+
oiwcdpbsqqhxlyfmlpktnujvza
204+
oiwcdpbsaqheryfmlgktnujlza
205+
oiecdpbseqhxryfmlgkknujvzz
206+
oiwcapbsdqhxryfmlgktvujvza
207+
ojwcdxbseqhxryfmlgktrujvza
208+
oiwhdpbseqvxrzfmlgktnujvza
209+
oiwcdppseqhtryfmlgktnujvzs
210+
oikcdpbsfqhxryfmdgktnujvza
211+
owwczpbseqhxryfilgktnujvza
212+
oifwdpbseqhxryfmlgktnujfza
213+
oowcdpbseqhxrprmlgktnujvza
214+
oiwcapbseqhxryfmjgktnujvze
215+
oiwcdpaseqhdrybmlgktnujvza
216+
tiwcdpbseqhxryfmlgkvjujvza
217+
xiwcdpbseqhoryfmlgktnujvqa
218+
eiwrdpbsyqhxryfmlgktnujvza
219+
oiwcdpbseqhxranmlgktnujvzt
220+
oiwcdpbseqhxryfqlgktnudaza
221+
oiwcdpbsvqhxrywmlgktnsjvza
222+
oewcdpbseqhxryfmlgkunujvma
223+
oiwcdpbseqhjrywmlgktnujvzb
224+
omwcdpbseqhxryfmlgktwujsza
225+
oiwcdpbyxqhxryfmlgrtnujvza
226+
oiwidpbseqhxryfhlgktnunvza
227+
oqwcdpbweqhxrybmlgktnujvza
228+
oiwcdqbseqhxryfrlgktnujfza
229+
oiacdpbseqhdryfmlgktaujvza
230+
oiwcdpbstqhxmyfmlgktyujvza
231+
oiwcdpbseqhxeyfclgktjujvza
232+
wiwcdpeseqhxryfmlgktnujvzx
233+
viwcdpbseqhxryfmlgvtvujvza
234+
oircdpbseqhxcyfmlgktnujvma
235+
miwcdpbseqtwryfmlgktnujvza
236+
oiwcppbseqhxcyfmlgxtnujvza
237+
giwcrpbseqhxryfmlgktnudvza
238+
onwcvpbseqhxryfmlgktnujqza
239+
oiwcipbseqhxryfmlgitnuqvza
240+
oiwcdpbseqhxryjmlgkonufvza
241+
oiwnwpbseqhxtyfmlgktnujvza
242+
oiwcypbseqhxryfmlgetnujvzv
243+
oiwcdpbseqhxryqmljktnkjvza
244+
olwcdpbseqhxryfmlgkenujvba
245+
biwcdpbseqwxrywmlgktnujvza
246+
oiwcdpbsevhmryjmlgktnujvza
247+
oiwcdpbseqhxryfmlzktnkjvzv
248+
oiwudpbseqhxrefmlgktnujvia
249+
oiicdpbseqhxryfdloktnujvza
250+
oihcjpbsxqhxryfmlgktnujvza

2/star-3.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
const fs = require('fs')
2+
3+
const inputRows = fs.readFileSync('./input.txt', 'utf8').split("\n")
4+
5+
let doubles = 0
6+
let triples = 0
7+
for (const row of inputRows) {
8+
let charCount = {}
9+
for (const char of row.split('')) {
10+
charCount.hasOwnProperty(char) ? charCount[char]++ : charCount[char] = 1
11+
}
12+
13+
let double = 0
14+
let triple = 0
15+
for (const char in charCount) {
16+
if (charCount[char] === 2) double = 1
17+
if (charCount[char] === 3) triple = 1
18+
}
19+
20+
doubles += double
21+
triples += triple
22+
}
23+
24+
console.log('doubles', doubles)
25+
console.log('triples', triples)
26+
console.log('checksum', triples * doubles)

2/star-4.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
const fs = require('fs')
2+
3+
const inputRows = fs.readFileSync('./input.txt', 'utf8').split("\n")
4+
5+
function compareWords(id1, id2) {
6+
const chars1 = id1.split('')
7+
const chars2 = id2.split('')
8+
let differences = 0
9+
for (let i = 0; i < chars1.length; i++) {
10+
if (chars1[i] !== chars2[i]) differences++
11+
}
12+
return differences
13+
}
14+
15+
function removeDifferences(id1, id2) {
16+
const chars1 = id1.split('')
17+
const chars2 = id2.split('')
18+
let result = ''
19+
for (let i = 0; i < chars1.length; i++) {
20+
if (chars1[i] === chars2[i]) result += chars1[i]
21+
}
22+
return result
23+
}
24+
25+
function findSimilarBoxes(boxIds) {
26+
for (const id1 of boxIds) {
27+
for (const id2 of boxIds) {
28+
const differences = compareWords(id1, id2)
29+
if (differences === 1) {
30+
return removeDifferences(id1, id2)
31+
}
32+
}
33+
}
34+
}
35+
36+
const result = findSimilarBoxes(inputRows)
37+
console.log(result)

0 commit comments

Comments
 (0)