Working on 2023-12-08 p2
This commit is contained in:
parent
7959e1186f
commit
72daf18fe4
@ -10,9 +10,9 @@ input_f = sys.argv[1]
|
|||||||
|
|
||||||
def pp(x):
|
def pp(x):
|
||||||
for i in x:
|
for i in x:
|
||||||
for j in i:
|
print(nodes[i].value,nodes[i].left,nodes[i].right)
|
||||||
print(j)
|
|
||||||
print()
|
|
||||||
|
|
||||||
d, *maps = open(input_f).read().split('\n')
|
d, *maps = open(input_f).read().split('\n')
|
||||||
|
|
||||||
@ -51,11 +51,30 @@ try:
|
|||||||
except:
|
except:
|
||||||
print()
|
print()
|
||||||
|
|
||||||
|
def done(x):
|
||||||
|
print(x)
|
||||||
|
for i in x:
|
||||||
|
if not i.endswith('Z'):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
current = {}
|
pp(nodes)
|
||||||
|
|
||||||
|
current = []
|
||||||
for i in nodes:
|
for i in nodes:
|
||||||
if i.endswith('A'):
|
if i.endswith('A'):
|
||||||
current[i] = i
|
current.append(i)
|
||||||
|
count = 0
|
||||||
#while not current.endswith('Z'):
|
steps = 0
|
||||||
|
while not done(current):
|
||||||
|
steps += 1
|
||||||
|
for i in range(len(current)):
|
||||||
|
if d[count%len(d)] == 'L':
|
||||||
|
#print("Going left from " + str(current[i]) + " to " + str(nodes[current[i]].left))
|
||||||
|
current[i] = nodes[current[i]].left
|
||||||
|
else:
|
||||||
|
#print("Going right from " + str(current[i]) + " to " + str(nodes[current[i]].right))
|
||||||
|
current[i] = nodes[current[i]].right
|
||||||
|
count += 1
|
||||||
|
print(steps)
|
||||||
|
|
||||||
|
768
2023/day8/r/input.txt
Normal file
768
2023/day8/r/input.txt
Normal file
@ -0,0 +1,768 @@
|
|||||||
|
LRRRLRRLRLLRLRRLRLRLLRRRLRLRRRLRRRLRLRLRRLRLRRRLRRLLRRLLLRRLRRLRRRLRLRRRLRRLRRRLRRRLRRLRLLRRRLRLRRLRLRLRRRLRRLLRRRLLRRLRLRRLRRRLLLRRRLLRLLRRLRRRLRLRLRRLLLRRRLLRRLLLRLRLRRLLRLLRRLLLRRLLRRRLRLRRRLRLLRRRLRRRLRLRLRRRLRLRRRLRRRLRRRLLRLRLRLRRLRLRRRLRLRLLRRLRRLRRLRRRLRRRLRLLRLLLRRLRLRRRR
|
||||||
|
|
||||||
|
HGK = (LRV, NBJ)
|
||||||
|
MCT = (PKH, PBF)
|
||||||
|
FJD = (PGR, CJB)
|
||||||
|
CQL = (XNN, GCT)
|
||||||
|
PBV = (QSS, PDK)
|
||||||
|
MPX = (DHN, NCX)
|
||||||
|
KKH = (HBR, MXL)
|
||||||
|
BLM = (DHN, NCX)
|
||||||
|
TTF = (FRT, CHK)
|
||||||
|
JDT = (SSQ, KHX)
|
||||||
|
KKR = (STS, RVK)
|
||||||
|
KRM = (JXX, LQG)
|
||||||
|
TTD = (SGV, VPF)
|
||||||
|
KCP = (NPP, CTV)
|
||||||
|
PTM = (MNN, GTS)
|
||||||
|
KTP = (GLC, GJH)
|
||||||
|
FNQ = (NVT, LXV)
|
||||||
|
TKQ = (DCR, GJX)
|
||||||
|
LXV = (VCC, CNC)
|
||||||
|
DVQ = (QHD, TPF)
|
||||||
|
QRN = (TXV, HFX)
|
||||||
|
KFH = (XHS, SHB)
|
||||||
|
QRT = (KQH, FFN)
|
||||||
|
XKC = (NTC, RMK)
|
||||||
|
GTH = (NVL, FFK)
|
||||||
|
MJS = (BLD, SQD)
|
||||||
|
XQB = (HVK, LVV)
|
||||||
|
CLV = (XQB, XQS)
|
||||||
|
HTH = (NSS, BKT)
|
||||||
|
FMK = (DSS, JMS)
|
||||||
|
KDF = (VTP, GMR)
|
||||||
|
VFG = (DLS, TPQ)
|
||||||
|
RHB = (SMB, JVD)
|
||||||
|
DPX = (LHH, GNB)
|
||||||
|
XHC = (RDF, XQN)
|
||||||
|
MGD = (PKH, PBF)
|
||||||
|
PTP = (KCT, BJH)
|
||||||
|
RVV = (FKC, XHC)
|
||||||
|
BRL = (BJH, KCT)
|
||||||
|
JJF = (MCK, BCJ)
|
||||||
|
KGR = (GJM, GJM)
|
||||||
|
KRF = (FMD, BGJ)
|
||||||
|
XQN = (DDR, NNX)
|
||||||
|
TVQ = (XTH, PJL)
|
||||||
|
HMT = (JNJ, BVS)
|
||||||
|
NKB = (JXR, FQM)
|
||||||
|
SFJ = (KFH, CCB)
|
||||||
|
FMB = (NKB, DGT)
|
||||||
|
VKD = (FMD, BGJ)
|
||||||
|
PJR = (BTS, LNN)
|
||||||
|
RJG = (DGK, BRS)
|
||||||
|
LSZ = (BDS, RXJ)
|
||||||
|
CTV = (KFV, JVF)
|
||||||
|
TGP = (CTJ, FBQ)
|
||||||
|
HVX = (JMR, RQT)
|
||||||
|
RVK = (CTC, RDJ)
|
||||||
|
KGS = (KMM, JPV)
|
||||||
|
SCC = (QCG, TCS)
|
||||||
|
HBR = (TGG, KBG)
|
||||||
|
PND = (BMC, HSK)
|
||||||
|
FQD = (PTD, NGM)
|
||||||
|
XGH = (KKS, HHC)
|
||||||
|
NJJ = (RHC, SFQ)
|
||||||
|
SNF = (FXJ, BSR)
|
||||||
|
DDR = (TSQ, PJR)
|
||||||
|
VRV = (NMJ, JBJ)
|
||||||
|
FFL = (NRD, BPD)
|
||||||
|
NMJ = (LTR, RQQ)
|
||||||
|
FSK = (KVQ, JXS)
|
||||||
|
MLF = (HGD, XHZ)
|
||||||
|
RQQ = (JGF, GGS)
|
||||||
|
KSN = (HGL, HVX)
|
||||||
|
VCR = (QNN, LLB)
|
||||||
|
PKH = (XSR, XDF)
|
||||||
|
DFL = (FFK, NVL)
|
||||||
|
LPQ = (FKS, PGM)
|
||||||
|
DQR = (JQV, FDP)
|
||||||
|
SSQ = (QPT, QPT)
|
||||||
|
JNC = (SPK, JPG)
|
||||||
|
SFQ = (BPG, NSQ)
|
||||||
|
NCD = (TJB, GBP)
|
||||||
|
CTJ = (KTF, DQF)
|
||||||
|
VPC = (VFG, QVQ)
|
||||||
|
SQD = (XQC, PHJ)
|
||||||
|
XKH = (MJS, SNH)
|
||||||
|
VDS = (FKD, PKD)
|
||||||
|
GFF = (JCF, HBS)
|
||||||
|
FKD = (MCM, LKD)
|
||||||
|
XDT = (NTC, RMK)
|
||||||
|
GRK = (RFQ, CSF)
|
||||||
|
PKN = (NGK, FLG)
|
||||||
|
QHD = (FSJ, FSJ)
|
||||||
|
GHS = (HTD, KLJ)
|
||||||
|
JGR = (RRD, XVQ)
|
||||||
|
XVC = (KGS, CNG)
|
||||||
|
XFH = (RTB, DDK)
|
||||||
|
CJS = (KKR, BNX)
|
||||||
|
KLJ = (NMN, LQK)
|
||||||
|
PJB = (GTH, DFL)
|
||||||
|
NPT = (JRJ, TVT)
|
||||||
|
FJX = (GXQ, VCG)
|
||||||
|
QBH = (QCL, VCB)
|
||||||
|
SXT = (MKJ, BLC)
|
||||||
|
GTR = (CDG, BFT)
|
||||||
|
KDJ = (GVL, KTD)
|
||||||
|
NTC = (RJP, SVQ)
|
||||||
|
DTP = (BSR, FXJ)
|
||||||
|
FDN = (JHK, VNQ)
|
||||||
|
BKL = (SBV, XKD)
|
||||||
|
VCX = (JQV, FDP)
|
||||||
|
LQG = (DKP, HTH)
|
||||||
|
MCM = (RSJ, PXH)
|
||||||
|
VHT = (CVK, MBQ)
|
||||||
|
XQS = (LVV, HVK)
|
||||||
|
CPG = (VFR, LVN)
|
||||||
|
QVQ = (TPQ, DLS)
|
||||||
|
VSH = (JNJ, BVS)
|
||||||
|
CFB = (FXD, FQK)
|
||||||
|
BGF = (TTJ, GNT)
|
||||||
|
MBB = (MKH, TKK)
|
||||||
|
SBV = (MQQ, DSG)
|
||||||
|
JBR = (NDX, MBB)
|
||||||
|
SMT = (KKS, HHC)
|
||||||
|
CSF = (QHG, VXS)
|
||||||
|
SFN = (LRD, NJJ)
|
||||||
|
GGS = (JLD, LPJ)
|
||||||
|
CHK = (QGS, RQZ)
|
||||||
|
RNH = (BCJ, MCK)
|
||||||
|
GJX = (XKQ, XTF)
|
||||||
|
TVB = (HGK, LJB)
|
||||||
|
SGV = (NNQ, LTF)
|
||||||
|
JHR = (XMH, SJB)
|
||||||
|
NBN = (BBH, PJQ)
|
||||||
|
BPV = (MRP, MRP)
|
||||||
|
PCH = (LFV, JCP)
|
||||||
|
KPR = (TDB, RVV)
|
||||||
|
KKT = (SNM, QBH)
|
||||||
|
DPS = (QPK, VSP)
|
||||||
|
LXM = (RNH, JJF)
|
||||||
|
TRK = (XVM, RHX)
|
||||||
|
TLT = (QQT, SXT)
|
||||||
|
DDB = (PML, MXS)
|
||||||
|
DSG = (BVH, QML)
|
||||||
|
MHD = (PMV, GHH)
|
||||||
|
XVQ = (MFC, JBH)
|
||||||
|
TTJ = (PJN, CQD)
|
||||||
|
XTG = (VBD, GFF)
|
||||||
|
VJF = (TVQ, NRP)
|
||||||
|
NSS = (HHN, FXT)
|
||||||
|
XSR = (CQL, RRX)
|
||||||
|
SPK = (BBP, LMK)
|
||||||
|
RSB = (KKR, BNX)
|
||||||
|
XNL = (NJJ, LRD)
|
||||||
|
SBH = (TVQ, NRP)
|
||||||
|
JXR = (NJK, CGS)
|
||||||
|
DGX = (VPL, TRK)
|
||||||
|
KTD = (KSP, TGB)
|
||||||
|
CBP = (LXM, TRM)
|
||||||
|
DCM = (FTX, FNC)
|
||||||
|
LMP = (NRX, JQL)
|
||||||
|
QNP = (FGF, QBT)
|
||||||
|
GJT = (TFD, FVN)
|
||||||
|
NPP = (KFV, JVF)
|
||||||
|
SVG = (DSS, JMS)
|
||||||
|
KBG = (KKG, PHN)
|
||||||
|
RDJ = (GJV, HBN)
|
||||||
|
NQS = (SNM, QBH)
|
||||||
|
GHR = (DVK, BCH)
|
||||||
|
LBX = (BNR, KDJ)
|
||||||
|
SCJ = (MPS, RCR)
|
||||||
|
HHM = (FXP, LTB)
|
||||||
|
LCV = (BFT, CDG)
|
||||||
|
LKS = (MRS, GSH)
|
||||||
|
JQL = (GBT, STL)
|
||||||
|
LHK = (VVP, LDT)
|
||||||
|
FLX = (TKQ, DCL)
|
||||||
|
VFR = (HDF, VSV)
|
||||||
|
XQK = (FJD, MCG)
|
||||||
|
JNF = (VDF, XJB)
|
||||||
|
GXL = (FQD, QFJ)
|
||||||
|
GBT = (CLG, KBH)
|
||||||
|
VFV = (SSL, FMM)
|
||||||
|
RHX = (LKS, BSD)
|
||||||
|
LRD = (RHC, SFQ)
|
||||||
|
TKK = (GJT, NFV)
|
||||||
|
XTF = (GPQ, XVX)
|
||||||
|
DQH = (KSN, GNR)
|
||||||
|
TPQ = (MPB, DSJ)
|
||||||
|
HTS = (XVQ, RRD)
|
||||||
|
LFN = (KVX, TTD)
|
||||||
|
NBQ = (JCH, TTM)
|
||||||
|
FMT = (DDB, NRN)
|
||||||
|
KTF = (FLX, DRP)
|
||||||
|
NRP = (XTH, PJL)
|
||||||
|
RFQ = (QHG, VXS)
|
||||||
|
CRG = (BPJ, LRF)
|
||||||
|
NRN = (PML, MXS)
|
||||||
|
MXF = (CTV, NPP)
|
||||||
|
BBV = (XXR, KQB)
|
||||||
|
LVN = (VSV, HDF)
|
||||||
|
PTK = (MVK, MVK)
|
||||||
|
NHM = (TXP, DLL)
|
||||||
|
NTK = (FGC, CGG)
|
||||||
|
LRF = (NRM, VHT)
|
||||||
|
XGG = (SSN, PBV)
|
||||||
|
ZZZ = (HRP, SRS)
|
||||||
|
DQF = (DRP, FLX)
|
||||||
|
NTT = (RCT, VBL)
|
||||||
|
HDH = (MGD, MCT)
|
||||||
|
CVK = (DXG, DCM)
|
||||||
|
KHX = (QPT, FHZ)
|
||||||
|
GNR = (HVX, HGL)
|
||||||
|
KVQ = (CBP, VMP)
|
||||||
|
JFC = (VFV, KRP)
|
||||||
|
FLG = (QTT, VKR)
|
||||||
|
VSP = (JXH, PKN)
|
||||||
|
HQN = (GJH, GLC)
|
||||||
|
GNV = (FXD, FQK)
|
||||||
|
BCJ = (MRT, GSD)
|
||||||
|
KKG = (DDC, XMN)
|
||||||
|
TLM = (JJM, QGK)
|
||||||
|
VMP = (LXM, TRM)
|
||||||
|
MPB = (NGN, JTD)
|
||||||
|
NFV = (TFD, FVN)
|
||||||
|
FVN = (DCP, PXL)
|
||||||
|
NMQ = (VNK, DGX)
|
||||||
|
NJB = (VXB, SFF)
|
||||||
|
NPD = (NKB, DGT)
|
||||||
|
JJM = (BBV, GPV)
|
||||||
|
PQT = (XQK, KBT)
|
||||||
|
PJL = (NQS, KKT)
|
||||||
|
FTX = (PPL, RGJ)
|
||||||
|
JCH = (DPP, GDB)
|
||||||
|
SCN = (TKM, CLV)
|
||||||
|
MKJ = (JFQ, FMT)
|
||||||
|
JGN = (QBS, MFB)
|
||||||
|
GJH = (SLD, LQT)
|
||||||
|
GVL = (TGB, KSP)
|
||||||
|
NBM = (QRN, CGF)
|
||||||
|
XXR = (FMK, SVG)
|
||||||
|
FQK = (QBN, NTK)
|
||||||
|
BLX = (BMC, HSK)
|
||||||
|
RCR = (JJR, DPX)
|
||||||
|
TTG = (CTJ, FBQ)
|
||||||
|
SSL = (KHQ, XFH)
|
||||||
|
PKD = (LKD, MCM)
|
||||||
|
RJH = (XKH, JCR)
|
||||||
|
VPF = (NNQ, LTF)
|
||||||
|
TJB = (TXQ, JFC)
|
||||||
|
XHZ = (NHM, PFM)
|
||||||
|
XTL = (RXJ, BDS)
|
||||||
|
HQS = (KPR, GLQ)
|
||||||
|
RRD = (MFC, JBH)
|
||||||
|
FLN = (VCH, BGT)
|
||||||
|
VBD = (HBS, JCF)
|
||||||
|
TLR = (XTR, FSK)
|
||||||
|
CHD = (FXP, LTB)
|
||||||
|
HHN = (CNB, MDX)
|
||||||
|
RJP = (TLM, NNT)
|
||||||
|
HKC = (RVN, JKR)
|
||||||
|
SJL = (CHD, HHM)
|
||||||
|
FDP = (TLR, SRP)
|
||||||
|
VPK = (MRP, RND)
|
||||||
|
VQP = (BHF, MVH)
|
||||||
|
XMN = (GRK, NLN)
|
||||||
|
MVK = (MLS, MLS)
|
||||||
|
GXM = (GJF, CRG)
|
||||||
|
KFB = (HTD, KLJ)
|
||||||
|
GFR = (XNL, SFN)
|
||||||
|
BCL = (SRS, HRP)
|
||||||
|
NLT = (SNT, VMJ)
|
||||||
|
BRQ = (FQD, QFJ)
|
||||||
|
VPL = (XVM, RHX)
|
||||||
|
VJN = (SJB, XMH)
|
||||||
|
GHH = (NSG, HVR)
|
||||||
|
BBP = (XGH, SMT)
|
||||||
|
DCB = (MVS, NRC)
|
||||||
|
DGK = (FQP, KDF)
|
||||||
|
BLC = (JFQ, FMT)
|
||||||
|
TCS = (PVK, HSJ)
|
||||||
|
PPL = (RSF, FSX)
|
||||||
|
QTT = (KHG, QLF)
|
||||||
|
PML = (NCQ, VRK)
|
||||||
|
LLB = (SGJ, VHX)
|
||||||
|
VXK = (FKD, PKD)
|
||||||
|
FSX = (CJS, RSB)
|
||||||
|
KKS = (SJL, SFR)
|
||||||
|
JLD = (RXB, RJL)
|
||||||
|
VGG = (XTL, LSZ)
|
||||||
|
BLG = (KFH, CCB)
|
||||||
|
TPF = (FSJ, GDP)
|
||||||
|
JFQ = (DDB, NRN)
|
||||||
|
RDF = (NNX, DDR)
|
||||||
|
HGL = (RQT, JMR)
|
||||||
|
KQB = (SVG, FMK)
|
||||||
|
RMM = (JHK, VNQ)
|
||||||
|
BCH = (VPC, GXH)
|
||||||
|
MCG = (PGR, CJB)
|
||||||
|
JBT = (PLF, VQP)
|
||||||
|
NSQ = (PTK, TNS)
|
||||||
|
RVN = (CMP, DBF)
|
||||||
|
XGK = (VCH, BGT)
|
||||||
|
BNR = (KTD, GVL)
|
||||||
|
QML = (QQV, VFJ)
|
||||||
|
KSD = (SFB, GGM)
|
||||||
|
PDK = (JJH, BNH)
|
||||||
|
KBH = (NTT, BVQ)
|
||||||
|
MSA = (PFM, NHM)
|
||||||
|
JRJ = (KXT, SFV)
|
||||||
|
AAA = (SRS, HRP)
|
||||||
|
NRD = (NLM, FXR)
|
||||||
|
QCL = (JTT, LBX)
|
||||||
|
CTC = (HBN, GJV)
|
||||||
|
DDK = (LCV, GTR)
|
||||||
|
PBF = (XSR, XDF)
|
||||||
|
TKM = (XQS, XQB)
|
||||||
|
SNM = (VCB, QCL)
|
||||||
|
JCC = (LQQ, RFC)
|
||||||
|
GSN = (VXB, SFF)
|
||||||
|
CNG = (JPV, KMM)
|
||||||
|
VMJ = (GVC, HGN)
|
||||||
|
CXT = (LDT, VVP)
|
||||||
|
CLG = (NTT, BVQ)
|
||||||
|
HHC = (SFR, SJL)
|
||||||
|
VTP = (SNF, DTP)
|
||||||
|
PKA = (STR, TVR)
|
||||||
|
MFB = (NJB, GSN)
|
||||||
|
NNX = (TSQ, PJR)
|
||||||
|
LCP = (HGK, LJB)
|
||||||
|
MQQ = (BVH, QML)
|
||||||
|
MXL = (TGG, KBG)
|
||||||
|
FHZ = (TVR, STR)
|
||||||
|
LQK = (SXB, LHF)
|
||||||
|
QNM = (RXR, BXF)
|
||||||
|
LNN = (SKN, BXL)
|
||||||
|
HSJ = (PJB, VVJ)
|
||||||
|
SHS = (SPK, JPG)
|
||||||
|
VKR = (QLF, KHG)
|
||||||
|
VMC = (CRG, GJF)
|
||||||
|
XHS = (KQK, FNQ)
|
||||||
|
BKT = (HHN, FXT)
|
||||||
|
NCJ = (PMV, GHH)
|
||||||
|
RQL = (NBF, CXB)
|
||||||
|
MNG = (CCT, SRB)
|
||||||
|
MQB = (CKV, XTG)
|
||||||
|
PGR = (XJS, SCN)
|
||||||
|
JCP = (VJS, FJX)
|
||||||
|
TFD = (PXL, DCP)
|
||||||
|
XTH = (NQS, KKT)
|
||||||
|
JBH = (GXM, VMC)
|
||||||
|
SLD = (BBC, RQH)
|
||||||
|
BBH = (XCD, HQS)
|
||||||
|
HRP = (VDJ, NCD)
|
||||||
|
CCT = (JNC, SHS)
|
||||||
|
VNK = (VPL, TRK)
|
||||||
|
QPT = (STR, TVR)
|
||||||
|
MJC = (FLN, XGK)
|
||||||
|
TBK = (GJM, NCH)
|
||||||
|
JCR = (SNH, MJS)
|
||||||
|
TBC = (KVX, TTD)
|
||||||
|
HDF = (GFR, TMR)
|
||||||
|
DJV = (SFJ, BLG)
|
||||||
|
VDJ = (GBP, TJB)
|
||||||
|
FKS = (KKH, FGH)
|
||||||
|
TXV = (NCJ, MHD)
|
||||||
|
FGH = (MXL, HBR)
|
||||||
|
RSJ = (CPG, RFT)
|
||||||
|
MVS = (HMT, VSH)
|
||||||
|
QBN = (CGG, FGC)
|
||||||
|
GSH = (HTS, JGR)
|
||||||
|
FBQ = (DQF, KTF)
|
||||||
|
SFR = (CHD, HHM)
|
||||||
|
PHN = (XMN, DDC)
|
||||||
|
KRS = (GNV, CFB)
|
||||||
|
QSS = (JJH, BNH)
|
||||||
|
BXL = (NJG, HKC)
|
||||||
|
RRX = (GCT, XNN)
|
||||||
|
KCT = (SLM, CCK)
|
||||||
|
BVQ = (RCT, VBL)
|
||||||
|
NMN = (LHF, SXB)
|
||||||
|
RQV = (SBV, XKD)
|
||||||
|
JJR = (LHH, GNB)
|
||||||
|
VCC = (BPV, VPK)
|
||||||
|
TPB = (MJC, XBQ)
|
||||||
|
SSN = (QSS, PDK)
|
||||||
|
GXH = (VFG, QVQ)
|
||||||
|
MRT = (VJN, JHR)
|
||||||
|
CRL = (VDF, XJB)
|
||||||
|
RFC = (LMX, PVR)
|
||||||
|
FGC = (CKT, SVS)
|
||||||
|
XKS = (BGV, MPT)
|
||||||
|
CCB = (XHS, SHB)
|
||||||
|
QGK = (BBV, GPV)
|
||||||
|
FTP = (SSQ, SSQ)
|
||||||
|
BSB = (MLS, HKM)
|
||||||
|
SKN = (HKC, NJG)
|
||||||
|
MNL = (TBC, LFN)
|
||||||
|
MRP = (QLX, QLX)
|
||||||
|
BSD = (MRS, GSH)
|
||||||
|
GXQ = (TTG, TGP)
|
||||||
|
FXD = (QBN, NTK)
|
||||||
|
GDP = (QJV, LXZ)
|
||||||
|
PJN = (DKM, NLT)
|
||||||
|
BNH = (KGR, TBK)
|
||||||
|
LHH = (RBC, HFK)
|
||||||
|
TDB = (XHC, FKC)
|
||||||
|
PXH = (CPG, RFT)
|
||||||
|
DRG = (JCR, XKH)
|
||||||
|
VXB = (NQQ, FLR)
|
||||||
|
JBJ = (RQQ, LTR)
|
||||||
|
JCF = (LPQ, JPC)
|
||||||
|
SJR = (QNN, LLB)
|
||||||
|
CGS = (HQB, FGG)
|
||||||
|
GLN = (KFB, GHS)
|
||||||
|
XKD = (MQQ, DSG)
|
||||||
|
HBN = (KSD, TNM)
|
||||||
|
XHB = (HQN, KTP)
|
||||||
|
FVJ = (GNV, CFB)
|
||||||
|
LJB = (NBJ, LRV)
|
||||||
|
NVL = (XVC, FBC)
|
||||||
|
SXB = (KRS, FVJ)
|
||||||
|
RHC = (BPG, NSQ)
|
||||||
|
LHF = (KRS, FVJ)
|
||||||
|
STR = (BNF, GLN)
|
||||||
|
MCK = (GSD, MRT)
|
||||||
|
RBC = (BRL, PTP)
|
||||||
|
MRS = (HTS, JGR)
|
||||||
|
SFF = (FLR, NQQ)
|
||||||
|
SRP = (FSK, XTR)
|
||||||
|
XQC = (BRQ, GXL)
|
||||||
|
BTS = (BXL, SKN)
|
||||||
|
MFC = (GXM, VMC)
|
||||||
|
BGT = (NMD, PCH)
|
||||||
|
RGJ = (RSF, FSX)
|
||||||
|
FPN = (SXT, QQT)
|
||||||
|
BNF = (KFB, GHS)
|
||||||
|
VVP = (XGJ, GPD)
|
||||||
|
CGG = (CKT, SVS)
|
||||||
|
XVX = (FMB, NPD)
|
||||||
|
DDC = (GRK, NLN)
|
||||||
|
JXX = (DKP, HTH)
|
||||||
|
JKR = (CMP, DBF)
|
||||||
|
SGJ = (KVS, CGD)
|
||||||
|
TRM = (RNH, JJF)
|
||||||
|
GNB = (HFK, RBC)
|
||||||
|
CGK = (DCB, SBB)
|
||||||
|
MDN = (RFC, LQQ)
|
||||||
|
XJS = (CLV, TKM)
|
||||||
|
LTF = (PTM, KRX)
|
||||||
|
NCH = (GMX, VGG)
|
||||||
|
NSG = (DRG, RJH)
|
||||||
|
RXJ = (LCP, TVB)
|
||||||
|
QLF = (JJQ, FSN)
|
||||||
|
TSQ = (BTS, LNN)
|
||||||
|
FNC = (RGJ, PPL)
|
||||||
|
RXB = (PQT, QDN)
|
||||||
|
SNH = (BLD, SQD)
|
||||||
|
PJQ = (XCD, HQS)
|
||||||
|
DHN = (BGF, XXN)
|
||||||
|
QNN = (SGJ, VHX)
|
||||||
|
BRS = (FQP, KDF)
|
||||||
|
DRP = (DCL, TKQ)
|
||||||
|
KMM = (BKX, CGK)
|
||||||
|
MLS = (BCL, BCL)
|
||||||
|
QQT = (BLC, MKJ)
|
||||||
|
FFK = (FBC, XVC)
|
||||||
|
BPG = (PTK, TNS)
|
||||||
|
LTB = (XFC, KRM)
|
||||||
|
XTR = (JXS, KVQ)
|
||||||
|
PDF = (DVK, BCH)
|
||||||
|
KVX = (SGV, VPF)
|
||||||
|
DPP = (JVB, GKC)
|
||||||
|
VVJ = (GTH, DFL)
|
||||||
|
KVS = (BQG, KCQ)
|
||||||
|
LFV = (VJS, FJX)
|
||||||
|
TNG = (PJQ, BBH)
|
||||||
|
NRM = (MBQ, CVK)
|
||||||
|
CMP = (VKD, KRF)
|
||||||
|
GTS = (BPT, TPB)
|
||||||
|
BHF = (DJV, SSD)
|
||||||
|
JNJ = (RGX, VRB)
|
||||||
|
DKM = (VMJ, SNT)
|
||||||
|
TSM = (QBS, MFB)
|
||||||
|
BKX = (SBB, DCB)
|
||||||
|
FBC = (CNG, KGS)
|
||||||
|
TNM = (SFB, GGM)
|
||||||
|
BQG = (TSM, JGN)
|
||||||
|
TMR = (XNL, SFN)
|
||||||
|
NGK = (VKR, QTT)
|
||||||
|
GDB = (GKC, JVB)
|
||||||
|
TXP = (FPN, TLT)
|
||||||
|
NRX = (STL, GBT)
|
||||||
|
BPT = (XBQ, MJC)
|
||||||
|
HGN = (JPS, QLM)
|
||||||
|
QLM = (SCJ, RNV)
|
||||||
|
XCT = (DGX, VNK)
|
||||||
|
HTD = (LQK, NMN)
|
||||||
|
TLQ = (JRJ, TVT)
|
||||||
|
GJM = (GMX, GMX)
|
||||||
|
KFV = (GSS, TPM)
|
||||||
|
KXT = (RJG, MGB)
|
||||||
|
GSD = (JHR, VJN)
|
||||||
|
NVT = (VCC, CNC)
|
||||||
|
KQH = (XCT, NMQ)
|
||||||
|
HVR = (DRG, RJH)
|
||||||
|
LMK = (XGH, SMT)
|
||||||
|
JTD = (GSL, MQB)
|
||||||
|
PMV = (HVR, NSG)
|
||||||
|
JPG = (LMK, BBP)
|
||||||
|
RMK = (RJP, SVQ)
|
||||||
|
LMX = (XLJ, PXQ)
|
||||||
|
MGB = (DGK, BRS)
|
||||||
|
PTD = (HDH, THF)
|
||||||
|
FQM = (CGS, NJK)
|
||||||
|
GSS = (BLX, PND)
|
||||||
|
GJF = (BPJ, LRF)
|
||||||
|
DLL = (TLT, FPN)
|
||||||
|
NJG = (JKR, RVN)
|
||||||
|
JPC = (PGM, FKS)
|
||||||
|
SRS = (NCD, VDJ)
|
||||||
|
XVM = (LKS, BSD)
|
||||||
|
KRX = (GTS, MNN)
|
||||||
|
RQT = (BKL, RQV)
|
||||||
|
BLD = (PHJ, XQC)
|
||||||
|
LKD = (PXH, RSJ)
|
||||||
|
NJN = (VDT, NBM)
|
||||||
|
GPV = (KQB, XXR)
|
||||||
|
VDF = (VXK, VDS)
|
||||||
|
CKT = (DQR, VCX)
|
||||||
|
SLF = (LGK, XGG)
|
||||||
|
PSL = (XDT, XKC)
|
||||||
|
NNQ = (PTM, KRX)
|
||||||
|
TVR = (GLN, BNF)
|
||||||
|
PVK = (PJB, VVJ)
|
||||||
|
DXG = (FTX, FNC)
|
||||||
|
NBJ = (DQH, FDJ)
|
||||||
|
CXB = (XSQ, QNP)
|
||||||
|
NBF = (QNP, XSQ)
|
||||||
|
MBQ = (DCM, DXG)
|
||||||
|
BBX = (JQL, NRX)
|
||||||
|
XBQ = (XGK, FLN)
|
||||||
|
GKC = (MLD, FFL)
|
||||||
|
GSL = (CKV, XTG)
|
||||||
|
SBB = (NRC, MVS)
|
||||||
|
QJV = (KQP, XHB)
|
||||||
|
FMM = (XFH, KHQ)
|
||||||
|
TXQ = (KRP, VFV)
|
||||||
|
DCR = (XKQ, XTF)
|
||||||
|
BJH = (CCK, SLM)
|
||||||
|
RGX = (QRV, QRV)
|
||||||
|
SFV = (RJG, MGB)
|
||||||
|
GFQ = (PLF, VQP)
|
||||||
|
BGJ = (TCQ, SLF)
|
||||||
|
LTR = (GGS, JGF)
|
||||||
|
JVD = (QVS, XKS)
|
||||||
|
HKM = (BCL, ZZZ)
|
||||||
|
GBP = (JFC, TXQ)
|
||||||
|
VBL = (BLM, MPX)
|
||||||
|
GRV = (QPK, VSP)
|
||||||
|
BBC = (KCP, MXF)
|
||||||
|
BVH = (VFJ, QQV)
|
||||||
|
FDJ = (KSN, GNR)
|
||||||
|
KCQ = (TSM, JGN)
|
||||||
|
NNT = (QGK, JJM)
|
||||||
|
BVS = (RGX, VRB)
|
||||||
|
XGJ = (NPT, TLQ)
|
||||||
|
JPV = (BKX, CGK)
|
||||||
|
NCX = (XXN, BGF)
|
||||||
|
SFB = (FTP, FTP)
|
||||||
|
QQV = (SJR, VCR)
|
||||||
|
KBT = (FJD, MCG)
|
||||||
|
GNT = (CQD, PJN)
|
||||||
|
NLM = (QRT, XNT)
|
||||||
|
CJB = (XJS, SCN)
|
||||||
|
CCK = (NBN, TNG)
|
||||||
|
XLJ = (CRL, JNF)
|
||||||
|
HVK = (MNG, CVP)
|
||||||
|
GLQ = (RVV, TDB)
|
||||||
|
JJH = (KGR, TBK)
|
||||||
|
MVH = (SSD, DJV)
|
||||||
|
PLF = (MVH, BHF)
|
||||||
|
HQB = (CKL, DVQ)
|
||||||
|
HBS = (LPQ, JPC)
|
||||||
|
NRC = (HMT, VSH)
|
||||||
|
CGD = (KCQ, BQG)
|
||||||
|
BGV = (RMM, FDN)
|
||||||
|
TTM = (DPP, GDB)
|
||||||
|
DKP = (NSS, BKT)
|
||||||
|
MKH = (NFV, GJT)
|
||||||
|
RQZ = (GHR, PDF)
|
||||||
|
XMH = (DPS, GRV)
|
||||||
|
JMS = (SBH, VJF)
|
||||||
|
DVK = (VPC, GXH)
|
||||||
|
VRB = (QRV, TTF)
|
||||||
|
XSQ = (FGF, QBT)
|
||||||
|
DDQ = (NJN, KQV)
|
||||||
|
HFK = (BRL, PTP)
|
||||||
|
NBA = (RXJ, BDS)
|
||||||
|
SLM = (NBN, TNG)
|
||||||
|
NDX = (TKK, MKH)
|
||||||
|
VFJ = (VCR, SJR)
|
||||||
|
XNN = (TML, RGD)
|
||||||
|
KQV = (NBM, VDT)
|
||||||
|
BDS = (LCP, TVB)
|
||||||
|
JVF = (TPM, GSS)
|
||||||
|
FVH = (CGL, NBQ)
|
||||||
|
CNB = (GFQ, JBT)
|
||||||
|
RHA = (PDF, GHR)
|
||||||
|
QFJ = (NGM, PTD)
|
||||||
|
JXS = (VMP, CBP)
|
||||||
|
XKQ = (GPQ, XVX)
|
||||||
|
FXJ = (XPP, JBR)
|
||||||
|
RFT = (VFR, LVN)
|
||||||
|
DSS = (VJF, SBH)
|
||||||
|
JPS = (SCJ, RNV)
|
||||||
|
XDF = (CQL, RRX)
|
||||||
|
FFN = (NMQ, XCT)
|
||||||
|
VJS = (VCG, GXQ)
|
||||||
|
TJS = (XDT, XKC)
|
||||||
|
SMB = (QVS, XKS)
|
||||||
|
FSJ = (QJV, QJV)
|
||||||
|
QRV = (FRT, FRT)
|
||||||
|
TML = (CXT, LHK)
|
||||||
|
CQD = (NLT, DKM)
|
||||||
|
SHB = (KQK, FNQ)
|
||||||
|
PGM = (KKH, FGH)
|
||||||
|
RSF = (CJS, RSB)
|
||||||
|
LXZ = (XHB, KQP)
|
||||||
|
KHG = (JJQ, FSN)
|
||||||
|
CGF = (HFX, TXV)
|
||||||
|
BFT = (PVS, DDQ)
|
||||||
|
NJK = (HQB, FGG)
|
||||||
|
TCQ = (XGG, LGK)
|
||||||
|
SNT = (HGN, GVC)
|
||||||
|
VCG = (TGP, TTG)
|
||||||
|
VSV = (GFR, TMR)
|
||||||
|
THF = (MGD, MCT)
|
||||||
|
TVT = (SFV, KXT)
|
||||||
|
LQQ = (PVR, LMX)
|
||||||
|
CKL = (QHD, QHD)
|
||||||
|
GPD = (NPT, TLQ)
|
||||||
|
DSJ = (NGN, JTD)
|
||||||
|
CVP = (SRB, CCT)
|
||||||
|
VNQ = (GQL, FVH)
|
||||||
|
MDX = (GFQ, JBT)
|
||||||
|
PVR = (PXQ, XLJ)
|
||||||
|
MXS = (VRK, NCQ)
|
||||||
|
DBF = (KRF, VKD)
|
||||||
|
CDA = (KQP, XHB)
|
||||||
|
XCD = (KPR, GLQ)
|
||||||
|
GJV = (KSD, TNM)
|
||||||
|
JMR = (BKL, RQV)
|
||||||
|
CKV = (GFF, VBD)
|
||||||
|
GMR = (DTP, SNF)
|
||||||
|
VCH = (NMD, PCH)
|
||||||
|
JJQ = (RQL, JVX)
|
||||||
|
SSD = (BLG, SFJ)
|
||||||
|
NQQ = (BBX, LMP)
|
||||||
|
PVS = (KQV, NJN)
|
||||||
|
BSR = (JBR, XPP)
|
||||||
|
SVQ = (NNT, TLM)
|
||||||
|
HSK = (HJM, MNL)
|
||||||
|
RQH = (MXF, KCP)
|
||||||
|
FXP = (XFC, KRM)
|
||||||
|
BPD = (FXR, NLM)
|
||||||
|
FQP = (VTP, GMR)
|
||||||
|
HJM = (TBC, LFN)
|
||||||
|
KQP = (KTP, HQN)
|
||||||
|
TPM = (PND, BLX)
|
||||||
|
DCP = (MDN, JCC)
|
||||||
|
LPJ = (RXB, RJL)
|
||||||
|
QBT = (RHB, VBG)
|
||||||
|
KRP = (FMM, SSL)
|
||||||
|
NCQ = (VRV, GFS)
|
||||||
|
FLR = (BBX, LMP)
|
||||||
|
VRK = (GFS, VRV)
|
||||||
|
RNV = (RCR, MPS)
|
||||||
|
XXN = (GNT, TTJ)
|
||||||
|
DLS = (DSJ, MPB)
|
||||||
|
TGG = (KKG, PHN)
|
||||||
|
CNC = (BPV, VPK)
|
||||||
|
CDG = (DDQ, PVS)
|
||||||
|
JXH = (NGK, FLG)
|
||||||
|
BXF = (CJN, SCC)
|
||||||
|
FMD = (SLF, TCQ)
|
||||||
|
JQV = (TLR, SRP)
|
||||||
|
RGD = (CXT, LHK)
|
||||||
|
QGS = (PDF, GHR)
|
||||||
|
RTB = (LCV, GTR)
|
||||||
|
RXR = (SCC, CJN)
|
||||||
|
FKC = (XQN, RDF)
|
||||||
|
RJL = (PQT, QDN)
|
||||||
|
DGT = (FQM, JXR)
|
||||||
|
GMX = (XTL, XTL)
|
||||||
|
KHQ = (RTB, DDK)
|
||||||
|
GCT = (TML, RGD)
|
||||||
|
SJB = (GRV, DPS)
|
||||||
|
SVS = (DQR, VCX)
|
||||||
|
NLN = (RFQ, CSF)
|
||||||
|
NGN = (GSL, MQB)
|
||||||
|
PFM = (TXP, DLL)
|
||||||
|
VCB = (JTT, LBX)
|
||||||
|
QBS = (NJB, GSN)
|
||||||
|
XPP = (NDX, MBB)
|
||||||
|
QCG = (HSJ, PVK)
|
||||||
|
LGK = (SSN, PBV)
|
||||||
|
NGM = (HDH, THF)
|
||||||
|
BMC = (HJM, MNL)
|
||||||
|
GGM = (FTP, JDT)
|
||||||
|
PXL = (MDN, JCC)
|
||||||
|
PHJ = (BRQ, GXL)
|
||||||
|
QVS = (MPT, BGV)
|
||||||
|
GQL = (NBQ, CGL)
|
||||||
|
GLC = (SLD, LQT)
|
||||||
|
MNN = (TPB, BPT)
|
||||||
|
TGB = (VHM, QNM)
|
||||||
|
MPS = (DPX, JJR)
|
||||||
|
TNS = (MVK, BSB)
|
||||||
|
QLX = (HGD, HGD)
|
||||||
|
JHK = (FVH, GQL)
|
||||||
|
CGL = (JCH, TTM)
|
||||||
|
FGF = (VBG, RHB)
|
||||||
|
CJN = (TCS, QCG)
|
||||||
|
FSN = (RQL, JVX)
|
||||||
|
XNT = (KQH, FFN)
|
||||||
|
GVC = (JPS, QLM)
|
||||||
|
LDT = (XGJ, GPD)
|
||||||
|
LQT = (RQH, BBC)
|
||||||
|
VHX = (KVS, CGD)
|
||||||
|
PXQ = (JNF, CRL)
|
||||||
|
FGG = (CKL, DVQ)
|
||||||
|
STL = (KBH, CLG)
|
||||||
|
FRT = (QGS, QGS)
|
||||||
|
RCT = (BLM, MPX)
|
||||||
|
VXS = (TJS, PSL)
|
||||||
|
FXT = (MDX, CNB)
|
||||||
|
KQK = (LXV, NVT)
|
||||||
|
QDN = (KBT, XQK)
|
||||||
|
NMD = (JCP, LFV)
|
||||||
|
GPQ = (FMB, NPD)
|
||||||
|
QPK = (PKN, JXH)
|
||||||
|
STS = (CTC, RDJ)
|
||||||
|
XJB = (VDS, VXK)
|
||||||
|
BPJ = (NRM, VHT)
|
||||||
|
GFS = (JBJ, NMJ)
|
||||||
|
HFX = (MHD, NCJ)
|
||||||
|
QHG = (TJS, PSL)
|
||||||
|
FXR = (QRT, XNT)
|
||||||
|
JTT = (KDJ, BNR)
|
||||||
|
VHM = (RXR, BXF)
|
||||||
|
KSP = (VHM, QNM)
|
||||||
|
JVB = (MLD, FFL)
|
||||||
|
XFC = (LQG, JXX)
|
||||||
|
VBG = (JVD, SMB)
|
||||||
|
JVX = (NBF, CXB)
|
||||||
|
BNX = (STS, RVK)
|
||||||
|
VDT = (QRN, CGF)
|
||||||
|
MPT = (RMM, FDN)
|
||||||
|
HGD = (PFM, NHM)
|
||||||
|
SRB = (SHS, JNC)
|
||||||
|
MLD = (BPD, NRD)
|
||||||
|
DCL = (DCR, GJX)
|
||||||
|
LRV = (FDJ, DQH)
|
||||||
|
RND = (QLX, MLF)
|
||||||
|
LVV = (CVP, MNG)
|
||||||
|
JGF = (LPJ, JLD)
|
63
2023/day8/r/part2.py
Normal file
63
2023/day8/r/part2.py
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# NAIVE, brute force solution, don't use if you want to be done in any reasonable amt of time
|
||||||
|
class Node():
|
||||||
|
def __init__(self, val, left, right):
|
||||||
|
self.val = val
|
||||||
|
self.left = left
|
||||||
|
self.right = right
|
||||||
|
|
||||||
|
def isDone(ls):
|
||||||
|
for elt in ls:
|
||||||
|
if not elt.endswith("Z"):
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
with open("input.txt", "r") as f:
|
||||||
|
lines = [l.strip() for l in f.readlines()]
|
||||||
|
# print(lines)
|
||||||
|
|
||||||
|
nodesDict = {}
|
||||||
|
|
||||||
|
n = Node(1, 2, 3)
|
||||||
|
|
||||||
|
directions = lines[0]
|
||||||
|
|
||||||
|
for l in lines[2:]:
|
||||||
|
# build nodes
|
||||||
|
val = l.split("=")[0].strip() # AAA = (BBB, CCC)
|
||||||
|
dirs = l.split("=")[1].replace(")", "").replace("(", "").split(", ")
|
||||||
|
left = dirs[0].strip()
|
||||||
|
right = dirs[1].strip()
|
||||||
|
|
||||||
|
n = Node(val, left, right)
|
||||||
|
nodesDict[val] = n
|
||||||
|
|
||||||
|
# print(nodes)
|
||||||
|
|
||||||
|
# curr = "AAA"
|
||||||
|
totalSteps = 0
|
||||||
|
idx = 0
|
||||||
|
|
||||||
|
nodes = [n for n in nodesDict if n.endswith("A")]
|
||||||
|
|
||||||
|
while not isDone(nodes):
|
||||||
|
# do directions again and again
|
||||||
|
totalSteps += 1
|
||||||
|
|
||||||
|
for i in range(len(nodes)):
|
||||||
|
direction = directions[idx]
|
||||||
|
if direction == "L":
|
||||||
|
nodes[i] = nodesDict[nodes[i]].left
|
||||||
|
else:
|
||||||
|
nodes[i] = nodesDict[nodes[i]].right
|
||||||
|
|
||||||
|
idx += 1
|
||||||
|
idx %= len(directions)
|
||||||
|
|
||||||
|
print(totalSteps)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user