summaryrefslogtreecommitdiff
path: root/2022
diff options
context:
space:
mode:
authornekineki <nekineki@nekineki.net>2022-12-03 06:29:01 +0100
committernekineki <nekineki@nekineki.net>2022-12-03 11:15:58 +0100
commit1e01b4cfd75bb19b65aea71313be0dda55a1b61c (patch)
tree29a82be7169f4f6df49f836e4f80a42f0854c06e /2022
parent5867d2f327a2b18d771974af00cbecaf35e4f614 (diff)
day3
Diffstat (limited to '2022')
-rwxr-xr-x2022/day3/day3.py72
-rw-r--r--2022/day3/input.txt300
-rw-r--r--2022/day3/input_test.txt6
3 files changed, 378 insertions, 0 deletions
diff --git a/2022/day3/day3.py b/2022/day3/day3.py
new file mode 100755
index 0000000..2e08c21
--- /dev/null
+++ b/2022/day3/day3.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python3
+
+# filename = "input_test.txt"
+filename = "input.txt"
+res1 = 0
+with open(filename) as f:
+ for line in f:
+ line = line.strip()
+ middle = int(len(line)/2)
+ first = line[:middle]
+ last = line[middle:]
+
+ print(first)
+ print(last)
+ d = dict()
+ for c in first:
+ d[c] = True
+
+ for c in last:
+ if c in d:
+ print(c)
+ if 'a' <= c <= 'z':
+ add = ord(c) - ord('a') + 1
+ print(add)
+ res1 += add
+ elif 'A' <= c <= 'Z':
+ add = ord(c) - ord('A') + 27
+ print(add)
+ res1 += add
+ break
+
+filename = "input_test.txt"
+# filename = "input.txt"
+res2 = 0
+with open(filename) as f:
+ for line in f:
+ first = line.strip()
+ second = next(f).strip()
+ third = next(f).strip()
+ print(first)
+ print(second)
+ print(third)
+
+ s1 = set()
+ for c in first:
+ s1.add(c)
+
+ s2 = set()
+ for c in second:
+ s2.add(c)
+
+ s3 = set()
+ for c in third:
+ s3.add(c)
+
+ si = s1.intersection(s2)
+ sii = si.intersection(s3)
+ print(sii)
+
+ c = list(sii)[0]
+ if 'a' <= c <= 'z':
+ add = ord(c) - ord('a') + 1
+ print(add)
+ res2 += add
+ elif 'A' <= c <= 'Z':
+ add = ord(c) - ord('A') + 27
+ print(add)
+ res2 += add
+
+print(res1)
+print(res2)
+
diff --git a/2022/day3/input.txt b/2022/day3/input.txt
new file mode 100644
index 0000000..adf173d
--- /dev/null
+++ b/2022/day3/input.txt
@@ -0,0 +1,300 @@
+RCMRQjLLWGTjnlnZwwnZJRZH
+qnvfhpSbvSppNddNdSqbbmmdPrwttJVrVPDVrJtHtwPZhrPJ
+BFpFzSSqSFFSvQsnWgCMjTLzng
+DbWVcVRRdlLffvtqjTWNgQ
+mJJMpsmrMrJSHJpsHrFHvBvgHvqfNvzffgTvfj
+mMhPjmjmFPJhMSGGcDRlwRdcLGPc
+qFcbmWFJqqWpRJcQWpqsQQQwSPCPrHRHCPdNZtSrSHwrNZ
+jGMjGLhhhgTvghgtGVjnNCrPVwZSZffSNSwHZZdH
+DvzDlvvhnjlMlglglGGhDLpqqcJWWtsmszpWbBBBmQmb
+SPLPHQbJSbPsvTLmfDvVDctvWhcDlD
+jdRRzzGgJqwrpMRMgdjlcVcWqfWWlfDlmmlWhB
+rwgRGdpGprNNLQLsbZJPsn
+GZhTVLztHrSzrRBz
+MJWjMvsfSCLSnrJn
+MjglcgWMdccvZGFtTDchLLLh
+rgDHBgBjRgRTgwzwthBnQwmBtB
+MsMpSfMsTGTFFLdFFFMFsnNmthNnzhthtwmWnznz
+pZMpJdvJMGRHVJJTVHjb
+TQVqZVBcBBdBfbpN
+zvzrtCshrntCHslPMMMFpZHbNSpb
+hLWhGLttsvLvrrWvhzVmQgwJZTRcggTjGcgT
+SqRGLHtSbtNTbhjFTjDDpF
+WwgJgmdmMdwPDVQQBBhSBFwV
+JMPlmlSldWZmRqtLsRGRtvls
+mZvmvPNmlNJPJzzmgNvNgdqqdBSpfHBqSsHqHfwpsffq
+nhDQDrwLrVVnqfGnsBGBGGsH
+VjCDMhbDjLjtFhtLhLhQjNZcZPwWWcczmvglgJJN
+wwqnwZGGZqqMpMprpZqwGlLDtNDffdBdNVBmNGBN
+TSTchTFbRLfLmVhNDm
+SCLRvJQvRFTSRjqMqPZrZnrzZzjp
+cJfqGjgGJcsgsPnghgBm
+FHHbQQHLWLbPQThqQQRnZs
+lLLMSCvrlFMwlSlFcNwqDVVpJcfjzVDf
+cRdRDhsDFzPztwJdGP
+CVqpCqCgSNfCSQBpjtBwtlBBHLlmGjGG
+qfQfCVQfgQnVNpQCMqfcrFrwWDhrDnsvcRDsbc
+nFWWzqWZQSqnJzNJzslJVsdV
+vBBvsLvbBmBmRlGTNJJvRRTD
+tBbpmmPwCmHpMHHMrPCCcSnZSgcFcZgWFscSfgth
+LLssTJrqrpvrvvpJvdjggMlgzVgVggPlFPqz
+HwZwCZfHNtbMzjgVnFPC
+RSttfRwZDtBcZwQMQdrQsdTBQQmW
+lJnNhMJqljlNhSrdWlGGGQHwwH
+vbTpbCsTFCTmbSmcRfVCfRpwcPdwWQQrdwHwBHrPdwrLLB
+sVTmDfmCTVmJjgSzzntDtt
+DQtMjZHZHvMbwwTSpqLtpJ
+FzVFlsNdVczWPzWcslVfSLqLsqJpSwwsJswLrf
+dNFFWcmzWFGLWcdcFgvZvvRHQvjMHDMBGD
+MVPTmPvbMgrTmmmmMRMvPvBwFGhhDCdFFwLCLdJhDGFRhG
+fqqWfpZWzWsDwhwdhwqGLD
+ZWSSftStnnplcQLSbVMBvTbrMlbrBvvl
+FSsHDmtFLbbFbLGg
+vrvzTzWzzzvppzSzTMnfTggjVgbgjbLjgPPnbGbVGL
+pdMwrBpfwfSMTTWdMTpBDCBtmsmltslcBDCshDHs
+RgbmfGtmRVgLLSVSnSrWWSHhnh
+ccTvlvNppsFnbFnhnWnPHJ
+pqNjDBjNNjvpZfmtjbCLbCmb
+qsSVpSVfWqgNrVtWptpmSfqbPQljbHPHlDnljRSlwSnwQn
+dcGBrMFMdLTGGdlwDwMRHwwMbjHP
+CFBvhFhTLFCGvFchChBdBTJtsNpWqfVgtszprmVWNqNgvV
+sjsTgNSNqSjgMmVPmmmrpH
+RftCcWddRCZfPtCfcQZdcZDcrBllBFpVHprHWlHHpHJJmlFp
+thPZRtLcDRdDCTTsqbnwjhvNjq
+TQPtgfgdPcdSQhjwHhHBLS
+RrqCqVVbJmVRJmsrzmJpWljlSHLSBwSSRWllWv
+CVrDNbHrJHVMCbrDJsdFdFcPFZngMfFdTPfP
+NNlZgndqmGVGGVZNWQmWmbhbbhpbbhtCbhtgCpCtMF
+THfLPTzwJTJrvHRwwsbFbhfbMCpphVtBbB
+RjrvzHLzPDvLzPHrTJVrwPndZQNlDZGndZWDdNNcmlQq
+tjDsjDGtTjVVbQVCggvrbg
+qrWWRBllRFrdlSMCdbSJCP
+cZcncRnhphpZWRNtrmsrGpHffmwH
+qpRjdcqTcMbbMRTwtnplnwnhPzhBhw
+FSFLvNrsPNrsGSLsrFSGfnwBQwZnZwhQQLwwQhnn
+sWNVmVmCFNWGsCrrjRTmMjRjPRqgJqJg
+sVCnzVpmFpVSnNFCmnmzwRFDWDdMllDccMdwDMjWjWlWjg
+BJbPJGGGHPZqZQbpMlWWMWlBljjjgDjh
+tGQPpZtfTPpqrHsVLSzmRNLtSFsN
+WCDlBWWlvMFWlQWpmSZdZnNmGfJZFZ
+LqjTjgtjPcHTTJgLThztcLTLnHnmdSpZdpdffnmZSppfGpSn
+PtzqzjtqJgggzhqqccqhrQMsMvMwrCwMlBvMwvvsvs
+NMsJfsHTMVbjnLnVsC
+htWllhmZcWDWBwhZPcmpVRjnVMRLCCjLFpCwRb
+PmZMrBtcPmZWhzDWBtMmJQdddHfQGNSqHqQGGTgr
+NmfnnsPlHnGqnlsNNmRPltRLvrhvrSGJSJjvFFFSSFJLhb
+PzQZccVPVwgPjrJSJjhFFpQr
+TdwBgdTVwzdwzlmNfRqPmqqTql
+BVLLBPmPmWBlMlLJnJlBlFQVgdRDdRZRZHpZjQzdRdZQdzQZ
+trGTsfbTTgHZptzSZW
+fsfTNcCqqNhhVhVFVhVBWLLB
+LJwgJNfbCvwCJCwBCCNhhHmGHWWSMWmWmbMmTmmGdS
+lzRnnltsstZzzRTfHtHWHGWftfHW
+ZFFzVFqzqlFcZscZpRZsNphjhjvjfgJhQgQvwvhC
+HHzcFNcHFjhjZjlrghLL
+pMZJptpZWCmpttRMCWnnDnBGGDLhlLQrhl
+MJsMCTZTTpTJRmMCJzfNsNcfNHqzvvfcww
+ZDtllsDlVsrQBqQqRfWl
+wvJgpPhhscgvpJFNrRjRrWRjqrRjdjRv
+zpsNzCsNCJCCPPHSLzznMnDSLGLM
+rfrJjFWrwjpnJjjjfrjJJnFVTgTggRWRRRPPLQgCgQcPPT
+sSNbSvqmsSZDZZBtNTTPGgMLMRVcgPCMRb
+zZDZzNNSmrfpjFCjzj
+dbbNJPBbbrFqNqttqrGbqDcmDQRmFmwcwSnQSDcpwS
+ZMMTsHjzLlLcnSVwpRRQ
+hZTWjWvTZzTTWhszfwbJhrgJqtBbJGdqNPqt
+rrqgHrgtcHJRRjWZlRvnnWBn
+QbhVmdFppwbdjnMvlnBwMWZP
+TpFDdVTFTDfhHfJcSJSzGZGf
+sqNTNZHsHjjFBBwJMMNMcCJD
+WGLQPjfWfQWPWmtLSRRRLwBJDbtCCJJCbbwCMBbMBc
+RnPdLQfPLRdndGGRvfjlgdrTTgTsrgTrZFzF
+BfHbjVVqSBFfMSlCLCDrGSQssvlr
+tTpnnzpcPnwzhcnJTDtTPRprGlRGGGCWlQsWvrlvrQGQrC
+DPwhghDTpPVHqqdgZbZq
+ZzPqfGPtRtqfqPbqfGgGZbrhMjmjBCpHpHNCmHtHjmBHnj
+QJwllvFWwDvnwCBBzjwwpC
+ccJLVQzWFJvVJlVbgrZZLZLRRPSgdr
+rBGbLbnTfnZrQbTnHldqsMmHsqlsWfMd
+JcJjCCPzPtjCNHdlGGMlll
+jjgpRRvcGbwpThVppT
+ttDfjtqfjtpTWWwfTbtlWccNGRSZNGPGhZGhGhcwRh
+LbCrHdvzLSSHmSRNmc
+JCsBvrvBLzFQbbvlVVnpQpDtWlDqfq
+vvdvJBfvdTvRBflBJPNmmffmgPCMwDgsss
+rFjqLnMcnqrrtMLtjNgCPCsNzzgsPCGFNs
+VqLqnLVZqjMZqWnrVtWlZJJSvHvBdRSvBdRvvJ
+zZBDzgQQZLlcglzjrCrCMFjGZbMsHm
+PnnJVRfttTtwVnnVFGHVsjCFCjrsMM
+wPRpRpRnNTpPNlBdQQDdgDNMhN
+bNQpFpnwgtDHpbnhWtffmfmhvhhfsZ
+LcdLdwCLPPSVSqqwZGhWdJhGJZhlGlsm
+TBwSLPSPVRSVqSVqVrcnpMDDngMgnQpbRQFDNH
+vPSvBJZSSdJgpJJZBDGDGrdqGdllGrGDrh
+HMtsltFlRVVFtlscRjjMcsWwWChWmrnwDWGwChmjGCWq
+MQHNlTVHNVHpbbpbTvvBvf
+VsbPMwhbWhzdpzNNggnBcTBWNngQ
+RmtZZFZqSjqVHmGQNcBHNLGLGHQH
+JjRClqCjZlDZmqSqljFZZqRCvsvPfshhMdwsDwbVwzMzhffb
+bfGtRgfDtVmsMzTbmz
+LjGZwQLLdjFdHLNMhmzBzMNHNmzN
+wjQLCFvnnQGdZLGWSjdqWDfPlrRpqRDDRqrpPr
+pqnBZqjCNCqQqmllpHGMGdTfML
+PsFgrRvSPsWTwWWQwGHLHW
+SrvgsFbrrPJJFsrFPtFSCChBDQjqCqtNhDqhCqNC
+RJZRWZWMWZPZffRCPWMdRdfQQQjJzHQsssjrSQFVschVHr
+NgpnDgvGTNTVFHFFjVFF
+jntvgljpGvlnbLtLbBvnLRPlCCwwCfRqMCCqqqddqw
+PFBMVDSVPHMTThtMtSBMMVNbQprHbNRgNRRgLnvpnjnN
+scGcrcwlswdGlcqvbQgnnpQnqLjnpp
+ffwswWzcmlcWWsmcZhrDFrZMFZBMFzhM
+LMdZGqdRSSZmCZMRfQjnggvlvggRcznz
+tjjFhBrtpthpslcvvlcQzFnFvQ
+jrhbjtpJtbZqCLdWLq
+HBGBfBttZzbGbljPdpFddFqRmqRzRN
+JDWghDDSDqmmDDpc
+CLvgMvChCvLphCTSShhMhQsBbfTfsGsrBfjfrljrZZff
+RgHgDqDzqQqgcdHqcZGTNlGffGBDGZBTGZ
+LFLPWsmvrbwhwwswrTlTTCBNGFfGlNJZNS
+vhrLnvhNmWvMsrvwqMdRcptQtztcjptz
+sLMLsThhjgqLlsnsLgTLtMFcRbcPcJSwJbbSbtSWScSt
+fvrjjDjvNprdPwwJCCSrWPFP
+vfZdGzVzfvGGVGpBjnnMglTsgZlqsMlM
+TCVMfCfBnHHfLLPFWb
+GgQlGJzNzbzHcHHLlcPLHL
+tQbNQGgRZZCVtVMZ
+QFFMzwjwngsvsBjGGJWbBbBWbB
+QdmVDmVDWRPWVPVV
+QHtHSdDpLQCCSHrtqrdrttDfLgvnFvFghNszzwgngFwsNF
+RzzTNpSRBzSBVpSRlHNSHBSSGPcLNGtjhPPcbcGhPPhcrnct
+CCmmCwwdfFJqDmdwsddhsmvdcMbLfcftttbPnjMPbcjPMPbP
+mdZQmvssFdqsFZvsZQmvDvmWzgQBWTRzTzHlppWRglHBQh
+VWmnfQWzWWnHWMfmmMVNMfWjtBtBNSNSrlStlpjJBBlgBS
+cZZvbwsZsbbZvvscCRdFTTTQrBStdBJgSdhjgBjBjJjpJJ
+wCFTCbZbFwwCTvFTwsPGccMzMDWVWfzLGmqHnnDHGLQL
+sNQQHbbhdlpdrQllqpsqSpGjZDZGgDnVcnjjnnDZ
+WWRLGFvJBJPvzzWjnTncDVZTTPgDff
+FLRLGRFRJLBWJmJzMRLCvldrMrbbltdhQQlNqtMbsb
+HZllwlZSlSZwhvmQjcZhTqcT
+sPzzdgpszpzsBdvvMccvcqPThjhM
+JDdsDspLzsdzBgVdBGBzCLlwbbwWSnlnnWffHwJcNlHw
+nzCTCnpqJqfCnvvjZjWjPcZrmcmZfW
+GNdwgVjwRdRglMrPWLPWZWcNWW
+dVblgtRwQgSGVBldbQBbBRJnQJTsJHTqnzzJFpjvHnnn
+dqpQQrdqQpLfqcGSdggQdgRMmwHBMMBVNRNDFFBDBgNt
+vTzsnZCnlCnshbPlvZJbBzVmmVRDNwtHFBwMDVBR
+lJCshjTJbVqfVdjjjG
+WlLCJlHLcZcJWcWZJnLHnPqlFtSthTnFNThVtNhVhvNVzVtF
+QfbgRsspfDRsgfjqqRRpDbSNSTFzBbTbhttVBhVNBzzT
+fwgfRdpdfQDqgPHHZJZCcdGddH
+sbrbmVmfddzJntZZtwtMMf
+PvhwPRlvvWhFvSRhpFMMJGMFppnBTBGJ
+RPlCCLDPDClwHbrdzsdNLzgs
+HZgqtgbqRZvzwzCh
+BFqmGfrNLQfhzJWBhRJwJR
+LFqFQjrcrcqFNMmMdHggntDPMnsDbn
+NmWmPblGnnTTNlFGPmNWfwdchdlHdBdwcfCfZppZ
+rzqzRjgVrJrzzcFdqdCBFBhZhH
+VDRsRMjRJJrQsJPTGFNvsbnsnLGm
+nrbrBLTffjNRzGQSJHJQGT
+tcZqMcppCmHRQPGGCG
+pMDcZhpgcpFDfrwNDDrLVjGj
+LWlmlmWqvrBMWWBlmjLThBrfPJZfZZCwPCJJwPCTcggCsd
+pSbRHbzpHDVFRQRfPdfnZswgcJcppp
+SzRNGbzSWNPLWqLv
+vqslblpspsvqBFSqcrrZZDdTfFPHccrf
+GWRhWmjwhRcQdCDrPjDP
+mcWLVnnWJgGRzVSsVSpSSptNpMvb
+wHTPfdTvHlPHGpdvvTddGfcJLLWWwWWcCWrqrVMWCVLL
+zhsSNZhnshNSnvZmvsCWWSLrVMcrSCLWJcrq
+snDnshmNsjnTdHPfDGvdDT
+CfrnFFMnnsRNrNCwFCrdssgqgqvVZvZqlTWBNWZqlJBW
+htDhDLhwPWWBqTghgB
+DPLPzHDtSPStjLGLtzSMwbdMdnCHrRdCFsmfnR
+nBNWCvJmVPNnCPNDJWbtmSwqTttcQsSqtqTjQQ
+pMflzLlffRRMRdFlflpLddGdsTjwHqzcvwTqtsStQQjtwwsQ
+ZhGlphlpvvLLfFGvMLhfrfWNJNNPVPbnPhnDgDbDDNbJ
+ZCpCmVlZvlpBBwvvMCrJhrfhMfjjWMSG
+qhstFzFFqzHGzNfSMJSGzM
+QnHRPRgRQPtPhtnDsqsbDQPBlTcpBwmVmTvbwdwBTVZVpl
+PHmqHdddqBWMmTvMvTGMBWPdwhssnnHlhgsNwhwNHQzwrswh
+cSbVcDLtbfLSFzhlhJswgtrsww
+bSLlFLFFLDZVLpZVjFLdPMdBBqGGPmmqWGdGjM
+FQCnQwFRbnrSfgQgwFRCnswmPLpMppPdMMllpLMptMLldPSZ
+cJhhJcJVBJjhfHDvJqThvVDcpdGGqdZGdlltpqWdMqpdGWtG
+HhzTjJBzJTvNJHvzvvNBzBFnFCNCbCwrbnRbgRwfwQsg
+jRzDgbDDQDgVqqDGsjttNdwqNJZNwNdTWrpB
+MHvvvlSHFllMhhMrpWBJtlWdpJrTwZ
+mFcFFHmCmtcvfvFFHHLDGnRVzjDgnmgmnzGgGg
+JJhDpDdmsJJdgmhrpPjGjFLPPSNpjL
+WbznbRGnPfrfRSrN
+WqGnnVGVMGHtWTCgJvZHggBggZCg
+wlrPQtZQvwrzlvNfZLMZBjbbqjqLbSBjTg
+PGJDVdsdhsPVPjbTcLcGLgjqbM
+VPDRHWRdsRQvpfmmlw
+pvTZTSpTZvGGphNvvbDpdrMqrjlWdPqqjWdldNrd
+gmmJmsQfJgcRQJQJJncVQjMWllSnqljqBlPPjPHHHH
+QVJQRVcwmJcchwpSZLwGbSZZ
+zjrDMWcjDzQjDlWrnqqRBRNhBJRBhBJqnf
+TTGPPdgGLwdHGwGPTgLbbvhHtRRNRRSfchqRvSqHRJ
+TZTccPpdZwPQjllsspjVzD
+jHLHhHFRjhcblDRRWbWTdtppLTntTnMmGLMvTp
+BBQBgBBCrrgqJqTtMZMpngdtpvpG
+QJJJQrsVsQQfQVPCNqsNSjHdhhdRHDNHFHFclh
+RbCLnvdtnLRLRbmLPpHdQCvmNJpJSZSJlgDzglGlzcclcDGD
+qBBwMjfsFMjsMbfWbwjlzDZlcWclJczgNDGNDl
+wqjhrwwhhCvbQPrRnC
+vpWDDDWZQQNGllwHlwWVGj
+LCPdqdcdtsvdsCtsddvmVrVjjrBwHlmswmBnmw
+fLfvSgvMfdCPqzZNThfNNpTJJQ
+CVVVLbNVmGNQbGbGHHbHbvdwgQlwJDTFgJQdDZDJFD
+ssWBsBWrjSzWrPtBjnSCTwvFZlDjwZDdgwTDwggv
+nntPBqBrPsBfnCRCBWzCVcGVHMLNcbHLNmHqGphp
+sbbwwzdsbqQQbQnnNbPNGbznHHRdLTggMVHFVvRZTRVRHMZF
+mWffDWfflBpfmcWjWrrJVvgRLlMZVVhMFFTlHhMM
+rJJCctmjcfvzsqsqbtbqPP
+HGWjHWzVctQVcJVtjvRsvLTddqDDDsjRLg
+bbMnlNChZQLZhdDs
+SMMMMMMNmMllSlrmCczGcVzBcGWFBQGcrt
+VwQlqcLfdLGqdqDjjgZrjZBdttjd
+zSPPPJzJGjJjZrCBDt
+WMTMsTWsccsvGGwH
+hZvbQrjTTZjZcjWNrjnQrcTRpGMqcRfRRGzHfHfpfRMqRz
+mDJlFmwCVVwbCVbPBRLMMLpRLwRLHqpR
+gsCmgJsPDCtCVlvbhgQjhgQbnQbd
+fSgbhhGPGJGhRDmlhhHcHDBH
+LsMwQWFswsQMsQMvjslcBcDldBTWfDcHRRdl
+ZpVFwLQwVLQvCVsMjrJbbCNPbzSJtPbPPf
+VDzWMCpfCcCRDzqDzqNnvLZnfntHQnPPLQlt
+sJmdbTBdmmGhFhhbJNNQlJnQlQLHPZNn
+sdwmwsdrmMRpDRMLcw
+JpWmSWpCnCbJBZHZVldbdfZf
+rgdrgNdrjgNPrMjwTssrPdfDZqsVfQHDFlQDDHQVsZfB
+TRPdNNLgjNwrRTrJpppzCmzmCLSnvS
+QbtQJHQmbmfmBRvbQRzBvldqcFljsGcFdGdvsqqGls
+ChCPWhDhWZWJVnZpCNChhVDcMcDdcdgGscjgFjGFlsjjGq
+WZNTWNhNZfJJbTJTmR
+CHGCHFcZvCrchrZrhsVtsBQjMstfZMMBgg
+NNqwDLmDjJgQBmVQ
+wdWLLTgWRTWcCcbrHCHhGW
+bTZZvNjNjLgTCHcWhccfhWJdhvnc
+mnFFmPGSwRPShzVPPWPdhhzr
+FRtBFGBMFQFttRwtZgTjCTnQNbNLjTCH
+bJSqrSpDJbSNbFjSFCfPWGcwGWPrcTCfwr
+tRtLhDsvhQZlHRhRtQQnCnCcdwCPwTwdGcGP
+HsHvsmBZvmvsmBhHvLssVqDSNgFMDzgbbDVJzbpMVq
+nSSDHRRRQRBCLCQC
+qGmfPzGmGlrrrpfrqlzrJtLvBlhQbSCvbtCtlFhLFC
+zzpmqqJJVVfJfPfMpfdHNndsNwDSMSDDNcsc
+CscQsVMhCsMsMHhhVthtwmgZNRqzWLBRLRLmBWmZWBND
+JQJdddrjrLqBgDBq
+QbFlTffpMbMnsPCh
+gDdbVbVDddDfVfWQfBRLQZsZLRQQ
+FCCTrGCMStwGHTtTWLQhLZrlRssRhRhp
+FSHqtFTmFwmCsSwGTHtMTSdjjcdnVddgzmbVmjmndbbD
+JtBBMcLWLdfFLhMttcWWhfWLrTRGFsbwTmRGwmwbbCTGGsbD
+PzQpSQQQvzVvpzHqjvNvQSvGRmmTDVRDmsGsRGsrcDcDGC
+cQPHSPvPvZHqcZjzpZjnZNtWlLdtldJWfnfhlJJtLdMg
+nPPssTBnMJPdtHPVHtRhpv
+bSSgGFWDgWwDFFlmWlcShqdpRqpVcHvvnqpvpRHd
+bGFnGljgSsjBCTBszz
diff --git a/2022/day3/input_test.txt b/2022/day3/input_test.txt
new file mode 100644
index 0000000..f17e726
--- /dev/null
+++ b/2022/day3/input_test.txt
@@ -0,0 +1,6 @@
+vJrwpWtwJgWrhcsFMMfFFhFp
+jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
+PmmdzqPrVvPwwTWBwg
+wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
+ttgJtRGJQctTZtZT
+CrZsJsPPZsGzwwsLwLmpwMDw