Advent Of Code 2022 Solution

静谧幽蓝發表於2024-12-05

\[\Large\texttt{Advent Of Code 2022} \]


\(\texttt{Intro}\)

這是一個從每年 12 月 1 日開始的為期 25 天的程式設計挑戰,每天中午 1 pm 會公佈一道題。
每道題會有兩個部分,你需要用程式設計解決每一個部分。

本文會使用 C++JavascriptPython 進行程式設計。

網址:https://adventofcode.com/2022


\(\texttt{Day 1}\)

\(\texttt{Part 1}\)

a=list(map(lambda it:sum(map(int,it.split('\n'))),''.join(open(0).readlines()).split('\n\n')))
print(max(a))

\(\texttt{Part 2}\)

a=list(map(lambda it:sum(map(int,it.split('\n'))),''.join(open(0).readlines()).split('\n\n')))
a.sort()
print(sum(a[-3:]))

\(\texttt{Day 2}\)

\(\texttt{Part 1}\)

win,draw=["AY","BZ","CX"],["AX","BY","CZ"]
a=list(map(lambda it:it[0]+it[2],open(0).readlines()))
tar=sum(win.count(i)*6+draw.count(i)*3 for i in a)
tar+=sum("XYZ".index(i[1])+1 for i in a)
print(tar)

\(\texttt{Part 2}\)

a=list(map(lambda it:it[0]+it[2],open(0).readlines()))
tar=sum(("ABC".index(i[0])+(i[1]=="Z")-(i[1]=="X")+3)%3+1 for i in a)
tar+=sum((i[1]=="Z")*6+(i[1]=="Y")*3 for i in a)
print(tar)

相關文章