Platform
Resources
Pricing
Sign in
Get started
Visnu Pitiyanuvath
Workspace
Fork
Published
Advent of Code 2018
By
Visnu Pitiyanuvath
Edited
Dec 5, 2018
Advent of Code 2018
Day 2: Box IDs
Day 3: Patches
Day 4: Guards
Day 5
Day 6
Day 7
Day 8
Day 9
Day 10
Day 11
Day 12
Day 13
Day 14
Day 15
Day 16
Day 17
Day 18
Day 19
Day 22
Day 23
Opendoor Leaderboard
Insert cell
Insert cell
Insert cell
part2
=
min
[
1
]
.
length
Insert cell
min
=
_
.
minBy
(
Object
.
entries
(
shorter
)
,
r
=>
r
[
1
]
.
length
)
Insert cell
shorter
=
removals
(
input
)
Insert cell
function
removals
(
polymer
)
{
const
chars
=
_
.
uniq
(
polymer
.
split
(
''
)
.
map
(
c
=>
c
.
toLowerCase
(
)
)
)
const
results
=
{
}
for
(
const
char
of
chars
)
{
results
[
char
]
=
chainReact
(
polymer
.
replace
(
new
RegExp
(
char
,
'ig'
)
,
''
)
)
}
return
results
}
Insert cell
Insert cell
function
react
(
polymer
)
{
let
last
=
polymer
[
0
]
for
(
let
i
=
1
;
i
<
polymer
.
length
;
i
++
)
{
if
(
toggle
(
polymer
[
i
]
)
===
last
)
{
polymer
=
polymer
.
substring
(
0
,
i
-
1
)
+
polymer
.
substring
(
i
+
1
)
i
-=
2
}
last
=
polymer
[
i
]
}
return
polymer
}
Insert cell
function
chainReact
(
polymer
)
{
let
next
=
react
(
polymer
)
while
(
polymer
!==
next
)
{
polymer
=
next
next
=
react
(
polymer
)
}
return
polymer
}
Insert cell
Insert cell
Insert cell
Insert cell
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Try it for free
Learn more
Fork
View
Export
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
test
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
part2
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
min
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
shorter
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
removals
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
part1
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
react
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
chainReact
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
toggle
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
input
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
_
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML