diff --git a/AdventOfCode2022.xcodeproj/project.pbxproj b/AdventOfCode2022.xcodeproj/project.pbxproj index 426201a..8f2ebef 100644 --- a/AdventOfCode2022.xcodeproj/project.pbxproj +++ b/AdventOfCode2022.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ 4663CA3029424CD30086DF24 /* Day8.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4663CA2F29424CD30086DF24 /* Day8.swift */; }; 46C166D12947245200A88A2B /* Day11.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C166D02947245200A88A2B /* Day11.swift */; }; 46C166D72947A34C00A88A2B /* Day12.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C166D62947A34C00A88A2B /* Day12.swift */; }; + 46C166DA294870AA00A88A2B /* Day13.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C166D9294870AA00A88A2B /* Day13.swift */; }; 46CFCF1C29407A610017442D /* Day6.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46CFCF1B29407A610017442D /* Day6.swift */; }; 46CFCF1E294080D80017442D /* Day7.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46CFCF1D294080D80017442D /* Day7.swift */; }; 46D5FD8729439AFB009DE94F /* Day9.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D5FD8629439AFB009DE94F /* Day9.swift */; }; @@ -50,6 +51,8 @@ 46C166D02947245200A88A2B /* Day11.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Day11.swift; sourceTree = ""; }; 46C166D62947A34C00A88A2B /* Day12.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Day12.swift; sourceTree = ""; }; 46C166D82947A35B00A88A2B /* day_12.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = day_12.txt; sourceTree = ""; }; + 46C166D9294870AA00A88A2B /* Day13.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Day13.swift; sourceTree = ""; }; + 46C166DB294870B700A88A2B /* day_13.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = day_13.txt; sourceTree = ""; }; 46CFCF1A29407A520017442D /* day_6.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = day_6.txt; sourceTree = ""; }; 46CFCF1B29407A610017442D /* Day6.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Day6.swift; sourceTree = ""; }; 46CFCF1D294080D80017442D /* Day7.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Day7.swift; sourceTree = ""; }; @@ -118,6 +121,7 @@ 46D5FD8B2944AB7F009DE94F /* day_10.txt */, 46C166CF2947243A00A88A2B /* day_11.txt */, 46C166D82947A35B00A88A2B /* day_12.txt */, + 46C166DB294870B700A88A2B /* day_13.txt */, ); path = Input; sourceTree = ""; @@ -137,6 +141,7 @@ 46D5FD892944AB6F009DE94F /* Day10.swift */, 46C166D02947245200A88A2B /* Day11.swift */, 46C166D62947A34C00A88A2B /* Day12.swift */, + 46C166D9294870AA00A88A2B /* Day13.swift */, ); path = Solutions; sourceTree = ""; @@ -210,6 +215,7 @@ 46E15EAB293E0BFD00F44580 /* Day4.swift in Sources */, 46D5FD8A2944AB6F009DE94F /* Day10.swift in Sources */, 46E15EA9293DE04900F44580 /* Day3.swift in Sources */, + 46C166DA294870AA00A88A2B /* Day13.swift in Sources */, 46D5FD8729439AFB009DE94F /* Day9.swift in Sources */, 464561562939F2E900BB9874 /* Day2.swift in Sources */, 464561542939F19A00BB9874 /* InputLoader.swift in Sources */, diff --git a/AdventOfCode2022/Input/day_13.txt b/AdventOfCode2022/Input/day_13.txt new file mode 100644 index 0000000..fe5b527 --- /dev/null +++ b/AdventOfCode2022/Input/day_13.txt @@ -0,0 +1,449 @@ +[[7,6,3,6,10],[[[5,3,6,7,7]],2,1,2,6]] +[[],[8,[8,6,5],[[5,1,8]],7],[]] + +[[10,[],[9,8,6,[2,7,0,8]],[],[[4,6,2,1,4],6,5]]] +[[4,5,1,[[0,0],[6,10],4,5],10],[[2,4,6,1,[6,8]],[[2,0,10]],[[5,10],[6,4,5,6],[8,9,2]]],[[[],10,0,7,7],[[9,9,7,3,8]]],[[[7],3,8],[6,3],1,5]] + +[[0,[[9,6,4,5]],[]]] +[[10,9,[[5,7],4,[5,8,0,9,8],[0,10],[3,1]],4]] + +[[1,[[5,8],[],5,[]]],[1],[2],[[],[[8,1,0,6],[6,9,6],4],[],[[9,6,0],5]],[[9,[4,8,1,1,4],[6,5,10,8],[0,5,1,4]],8,[[],[10],2,7],[[9,5,0],3],2]] +[[],[1,[],[[4,9],[6,10,2]]]] + +[[6],[2,[4,[6,10,2,0],1,[6,0,5,0,0],[]]],[2],[]] +[[9,[[8,2],4],4],[],[[]]] + +[[[9,8,4,[7,6,0],2],1,[[0,5,8,7],[6,0,9,6,2],[9,9],2]]] +[[[4,10],[]],[[8,[8]],[[0,5,6],[10,8,4],[0,6,6],[4,2,5,8]],0]] + +[[5,9,2,[2,[5,2,5,6],3,0],[]],[[[9,3,3,9,2],[6,7,2,6,1],[4,5,8],4],[[5,0,8,2]],9,6],[[[3,9,7,3,8],[9]],[[9,4],2]]] +[[[[9,7,9],5],8],[9,2,[6,3,10],[[5,1,5],[0,2,9,5,1],1,6,6]],[[4,4]],[],[3,[[4],[6,2,3,8],[1,10,7,7]],[[1,8]],[0,5,[5,2,8]]]] + +[[[],2,[6,[3,3,7],[4,5]],[2,0,5],[]]] +[[[2],[0,[5,6,9,0,3],[0]],[[2,0],[10],4,3,9],[[],9,[6,7],5,[]],1]] + +[[5,10,[],0]] +[[[[1,5,7],1,1,[6]],8],[],[[5],[[4,7,10]]]] + +[[[],5],[1]] +[[[],[[2,10],6,[2,3]],0,2,[4,4,6,10,7]]] + +[[8,5],[[[4,5],[6,7,1],[2,3,1,2,6],[6,7]],9],[7,5]] +[[],[],[3],[[],[[8,9,6],6,9,[10,9,6]],[6],9]] + +[[9,[[2,8,3],[8,0,4,9,5],[2,3,8,2,2],[2,3],[5]],[[],[],[0,3,1,3,3],[2,10,4,0],2],9,2],[[2],[[0,5,0,3,9],1,[8,4,5,6,4]],4,[7,5]],[],[[3,3,[6],[4,6,4,1,4]]],[[[7,8,7,4,6]],8]] +[[1],[[[3,2,6,1],7,[0,4,9,3,1],[6,0,0,4,8]],[[5],[7,3,1,7,3],8,[9,8,2,6,8]]],[0,[3,[3,10,4,10],8]],[]] + +[[[4],7,[[9,1,9,5,4],[],[4,7,2,4,2],[]],8]] +[[10,10,9,10,[0,6,[9,8,9,10,7],0,[4]]]] + +[[[3,[3,6],[5,0,8]],[2,3,[9],1],[[7,7,4],[10,0],[]],3,[]],[[[],6,[5],[5]]],[10,[],[10,1,5,[1,8,4,5]]],[]] +[[[]],[6,1,[8,[10,5,4,3],9],3,[]]] + +[[[2,9,5,[2,4,0,6]],[2],[]],[6,[1,9,0,[1,10,7]],2,7],[[2,10,[8,1]]],[],[[5,[10,10,9]],[],[1],3]] +[[6,10,[]],[[2,[8,8,6],[8,5,4],7],1],[7,[[0,10,7],[10,6,3,7],3],[[],3,3],[],7]] + +[[[5,5,6],[4,[0,10]],[[3,0,9],[8],5],[[3,9,0,10]],4],[],[[8,[6,7,1,8]],[[],[7,7,7,3,6],7,5,[10,10,9]]]] +[[[8,4,3],[[3,10,0,8],[1,6,9,8],7],9,[0,[]],[3,3,[0,6],[3,7,0]]],[9,8,[[],[1,9],10],10],[8,7,[[2,9,1,1],[4,3,10],[6,6],3,7],[4,9,[4,7,6,3,0],6,[3]],4],[[[9,1,5,9,5],7,[8]],[],0],[[]]] + +[[[8,8,[7,10,9,2,3],5,0],[],[2,10,[3,6]]],[[[5,0,6,4]],[],10,5,[6,6,[]]]] +[[2,[]],[],[10,1,5,[6,6,[],2]],[[],4,5,2],[]] + +[[],[6,2],[[6],[[1,7,5],[4,10,10],[1,10,0],1]],[],[]] +[[10,6,3,[1,8,[7,9,1,10,2],9]]] + +[[],[[[5]],2,9,[]],[[],10,[],[4,[2,3,3,0,7],6,[]],0],[[[],10,[],[],[]],8,[10],[]],[[[],1,5,1,10],[[2]]]] +[[8,[1],0,3],[4,[],3,[],[[5,2],[2,4,1],1]],[7,3,4],[9,[8,[],9,[1,0,2,3]],4]] + +[[[2],0,7,1,[7,[2,4,9,2],4]],[[4,8,[0]],[7,[8,6,2,5],[3,6],0,5],[[5],[7,0],[1]]],[0,10,10,[[3],4]],[7,10]] +[[[[8,3,7,0,5],[2,0],10],[9,9,3],[[9,4,3,9],10,10,3],[[],0]],[[6,2,[5,5,0],[5,2,7,4]],[5]],[[1,[0,5,1,10]],4,[10,[5,9,1,0],[3]],9,6]] + +[[[]]] +[[[8,[0,0,7,1,5]]]] + +[[10,[],8]] +[[[[3,9,7,3],[6],10,[1],8],7,3,[[5,9,2,9,3],[2,2],9,0]],[[3,10],[8,0],4]] + +[[[[],[9],4,[3]],5,10],[8,1,3,[[2,9]]],[9,[[4,8,1],4,[3,0],[2,3,9],[3]]]] +[[],[[[3],[2,9,6],[0,0,5,8],4]],[[[10,10,0,4],[0,4,4],[6,8,7,10,3],[]]]] + +[[2,[[4,0,3],5,3]],[[10,5,6,[2,3,5,2]]],[1,9],[[8,[1,10],[5,7],[3,5,4,7]],5],[]] +[[9],[],[9,[[9,1],10],[[],7]]] + +[[7,[[]],[10,1,3]],[[[],[0],[9,10,9,5,6],2,3],[],[1],[],[10,6,[7,9,10,5,5],7]],[0,[7]]] +[[6,8,7,[[6,9,6]],6],[4,[[],7]],[8],[3],[[],1]] + +[[4,[],2],[7,[],0,9,6]] +[[[],[[],[7],5,1],[[4,4,9,3,6],5,[5,4],[4,7,10,1,4],4]]] + +[[9]] +[[[1,[],2,8],9,[3,8,[9,8,4],9,4],[4,4,0,[9,6]],[2]],[[5,[9,4,10,3],[],10,[]],2],[10,8],[[6]]] + +[[9],[[],5],[],[[5,7,[]],6,[]],[[0,5,3,[3,5,9,0]],[6,9,9,1,[]]]] +[[10,[6,[],6,[0,3,9]],7,5,4],[[8,[6],[],10],1,[4,2,3,[]],5,[0,4]],[],[[[5,0,0],[],[],[2,10,1]],10,[[5]]],[5,[[2,1,9,0,2]]]] + +[[[8,1,[5],[7],[7,5,10,10,1]]],[]] +[[9,6,1,[]],[3,8,9],[],[],[[3,[6,4]],10,7,[10]]] + +[[[[1,5,10,2]]],[4],[[[1,7,6],9,[7,8],[1,4,3,4,4],1],[],[2,2,[9,3]],[]]] +[[[[9,9,6],9,9,[]]],[],[7,8,0,[],9],[[2,[2,5],[],[1,9,0,5],[]],[6,[8,0,5],[5],9],[[6],[6,10,3,9],[],1],1]] + +[[[[8,7,2,4,5],[0,2,0]],[3,[6,6],[5,8],[]]],[8,[9,[9,5,5,7],[4],[10,3,2,2]]],[3,10,0,[0,[6,4,9],[4,1,10,6,8]]],[2,[4,[8,4,1],[6,5],3,4],[[1,4,7],4],5],[7]] +[[[5,[3,3,4,0,9],9,[4,5],2],10,[[5,0]],[9,0],9],[8,[[9,10],[6,6,1,4],[8,10,2,5],[3,7,2,5]],7]] + +[[[],0],[7,6,10],[9,[6],6,[3,5,[0,6,9,0],8,1]],[10,4]] +[[4],[[],[[],[9,8,4,1,1],5,[5,6]]]] + +[[[],[]],[3,7,1,9,[]]] +[[0,8,1,[0,10,[10,2],[7,7,2,4,2]],[[]]],[[],0,[7,[1,10,4],[6],2]],[[[8,1,9],[9,1,10,1]],[9,[],6],6,3],[0]] + +[[],[6,8],[[10,5,[0,5,1],7,[5,0]],10,[4,[],[10,9,1],8]],[4,2],[4,6,1]] +[[[4,[1,7,6],6,6],[[3,10,1],[8,10,6,0],0,[6,10,2],8],7],[[7,6,[8,9],[0,7,3,1,2]],7,[2]]] + +[[6],[9],[[10,2,0],[],[[1,1,4,1],1]],[[],0,[7],4,7]] +[[5,[2,[],2]],[[[6,9,6],[4,7],10],[7,0,5,6],[[10,4,8,10],[],[9],6],0,8],[3,[6,[1,0,5,5,10]]],[]] + +[[2,2],[5,[7,[0,1,6,10]],[],8,4]] +[[7,2],[[[7,7,1,2],[],[10,8]],6]] + +[[[8,9,[8,5,3,9],10,8],[7,5,8,[1,8,4,3,0]],[[4,8,5,1],[5]],5],[[[6,7,8],4,5,[7,3,1]],[[]],[]],[],[[8,7,[0,1,8,2],9,1],[9,5],[5],3]] +[[[[10,9,8],7],10]] + +[[],[7,1,7],[[10],2,7,[]]] +[[5]] + +[[7,9]] +[[],[],[5,10,2]] + +[[[],[]],[8,[[6,4],9,3,2],10,5,[0,[3,10],5,7]],[5,[5,1,[8,0,8,0],1,[]],[2,[],[10]]]] +[[[],[3,0,5],5,9,6],[1,4,3,[],10],[4,[],6,[[],[10],0,[5,3,3]]],[8,[[3,10,7,1],5],3],[[7,[9,2,7,1,3],[9],9,2],5]] + +[[[],5,[[9],7],9]] +[[[6,9],7,6,[[10,10,5]],3],[[[6,3],2],5,[6,4,9],0,[[7,7,8,3,0],5,[2]]],[1],[[],2,0,[[2],[8]]],[1,[[2,6,6,2],8,[4,8,4,5,6],2,[6,8,8,1,10]]]] + +[[5,[[10,2,6,0],[2]],[],[],[[0,9]]],[5,8,[5,[8,3,5,6,0],6],[0],1],[[5],0,[[3],[],0]],[4,10,1,[2,[]]],[[[0,10,8,2],5,[7,3,0,8],[4,1],[3]],4,9]] +[[7,1,9,[7,2,[0,0,0,7]]],[4,3],[8],[[],4,0,[]]] + +[[2,3,5,[],6],[],[[],[2,[4,10,10,4],3],6,[8,1],3],[3,4,[5,[7],[5,10,6],10,4],[[6],4,1]]] +[[[[],[10,5,5,10,3],5,[],7],[1,[4,7,0,2,4]],[0,[10],8,1,[10]],3,5],[2,[8,9,1,1,6],[6,[2,10,6],[],2,[5,5,5,7]],[[4],0,6],8],[1,4,6,[[7,7],[5,8]]],[2],[[[]],[[1,3]],0,[6,[9,1]]]] + +[[2],[1,[[1,1],[9,9,2,8,9],7],10,4],[[2]]] +[[4,3,[]],[2,[1,6]],[[8,2,2],[9,5,[]],5,[[],2],5],[[[6,9,10,2,1],[8]],[9,3,4,3,[10,8,5]],[[1,6,10],6,[]],6]] + +[[[[3,0,6,6],7,[],1,[9,9,9]],2,[[2,1,3]],1],[6,[[0,4,0],[3,2,2,0,3],0,9,7],1]] +[[5,[0,10,[6],[],8],3],[3,4,[[3,3],10,8],[7,[2,7,10,9,6],3,[],2]],[9,1]] + +[[0,1,[7,[4,9,6],4,[4,1,1,8,2]]],[1,5,[2,[8,2,10,8,6]],7,3],[[0,1,[10,7,3,6]]]] +[[],[[[],[]],10,[9]],[[[4,9,10]],[],10],[2]] + +[[[8,9,7],4],[1,[2,1],10,[10,6,0]],[1,[[8],[8,6,8,5],5,[10,2,10,9],3],[[8],4],[5,1,2]]] +[[9,5,7],[[[],3,2,9,[3]],[],6]] + +[[[[7],1],1,7,[]],[[2,[5],2,[0,6]],[10,[6,7,8,1,9],0,[5,0],[4]]]] +[[],[[[7,9,6,9],5,[0]],5],[],[]] + +[[9,2,6,[[7,5,6],5,[5,8,5,10],4,[1,3]],[]],[],[4,8]] +[[[[0,4,3,1,9],[8,3,8],4]],[5],[9,7,3,7],[[4,[3,9,1]],8,[[6,0],[3,0,0]],3],[1,[8,[4,9],3],4]] + +[[10,[[8,9]],0,[]]] +[[],[9,0],[[],0,[[],9,7]],[3,8,[6,[1],4,[1,8,4,7],[4,0,6]],[6,[7,2,0],[7,5,9,1],[3,7,10],8],8]] + +[[8,5,1],[2,0],[]] +[[2],[[],[[7,2,4,3,7]]],[[[2,7,6],8,6,1,3],6,2]] + +[[[[1,6,5]],[9,[],[8,1,6,7],10],[],[7,[10,6,5,6]]],[9],[[[]],9,1,5,[6,3,[7,0,3],[0,3,4,7,8],[5,1]]],[[7],2,3,[]]] +[[6,2,[2,0,0,10,0],[[9,3,10],3,[8,7,6,2,9]],[8,1,[6],[9,3,4,4]]],[[10,[1,10,7,10,9],3,[4],6]]] + +[[[],[[5,5,5,5,10]],[10,1,3],0],[9,[[1,10],[2],[9,8,6,5,5]],[],3],[[[2],[7],3,[8,6,2,2,7],0],[],0]] +[[[1,[]],[],2,[[]]],[[6],[],[[7],[],4],[[0,7,2,5,9],8]],[[],5]] + +[[10,[],8,[3,10,4,[],4]]] +[[[0,[2,2,9,10],6,[2,1,8,7,3]],3,7],[[7,[2,4,0,3],1],3,7,0],[],[[4,[5,9,1,5,9],6,5,[]]]] + +[[2,7,5],[7,[6,6,[6,10,0]],9,[[8,9,4,9],6]]] +[[[]],[6],[[[1],[7,0],7,7,[5,7,10,6,0]]],[[[4],[10,9],[10,3,5],[],1]],[[3],8,[],[],5]] + +[[4,0,9],[],[[],[10,[4,3,8,2,8],0,[1,7,8],[2,0,3,7,0]]],[[],[5,4,[6,10,8,5],[8,2],1],9]] +[[[3,[9,2],0,4,7],[9,[10,3],[8],[3]],5],[9,8,9,3,[]]] + +[[9],[[[5,9,5,10,8]],0,1,[[3,7,1,1]],4],[2,[[7,9,5,10],[4,2],[3]],[[]]]] +[[6,6,[[10,3,4],[10],[7,3,1,0,3],6],[[7,6],[8,8,3],5,[5,7,2,2],8]],[]] + +[[1,2],[6,7,6,0],[]] +[[9],[[[],[9,9,10,10],1,[7,8],[8,7,1,3,10]],[0,0,0],[[2,10,3,6],[4,7,5,10],[],[]],[[4,8,2,6,4],[9],3]]] + +[[6],[10,[[5,4,7],3,3]]] +[[[3]],[],[1,2,[[],7],[[3,10,8,4],[9,9,6,7],0]]] + +[[[5,0,0,7,[9]],8],[1,1,[],[6,[0,1,7,1],[9,4]]],[8,[[8,5,0,6],[4,5],6,[10]],1,1],[],[4,4,[1,[8,5]]]] +[[],[],[6,9],[4,[8,[7],5,[9,6,4,5],[2]],[6,0,7,[4,9,1,8,9],[5,4,6]]],[[[5,5,2],3]]] + +[[[7,6],[[3]],[[6,2,0,4,6]],1,[[9]]],[[4,9,3,[3]],0]] +[[[9,0,[4,5,5],10],[[],[3,2,6],[2],10,3],[6,2]],[],[[1,5,[4,7,3],[]],[9,[],10,[5,3,10,0,0]],2,[4,[]],[[7,10],10,3,6,[3,4]]],[2,[],9]] + +[[7,1,9,[9,6,6,2,10]],[[[],[],[4,6,2,4,0],[3,10,5,10]],[[],[8,7,6],[10,10,2,10,10],[10,4,0],4]],[9,3,[[8,8,7,3,9],0]],[8,9,[[3]],7,1]] +[[[3,[3,2,4,1,2],[7,5,6,9,1],[]],[9,3,[6,9]]]] + +[[1,[[2,8],[7,0,8,10,6],6],[7,5],6,[[7,3,10,7],3,[1,0,10]]],[[[5,9],10]],[2,[[0,2,6,9,0],9,8],[10]],[]] +[[4,6]] + +[[[1,7,9,[10]],8,[2,[6,7,1,1],[3,2,5]],1]] +[[0,[6,[5,10,10,0,10],[0,5,8,9],5],2,[[2],[],5],[[7],[5,5,2],[2,6,5,10],[0,6,6,8,2]]]] + +[[[[1,1,6,8],[2,3,9,5,9],1,[1,8,1,1],8],10],[1,2,6,[10,[10,9,0,0]],10]] +[[4,[[]],[0,[2]],8],[[9,[5,4,1,4,10],3,[8,4,3],6]],[[],10],[],[5,4,[3],7]] + +[[2,0],[4,[[9,1,7],4,10,[],10],[[10]]]] +[[4,[0,[10,8,0]]],[2,[7],[]],[3,4,1,[3,[]],[]],[[],9,[],0,9]] + +[[1,[[9]]]] +[[2,[[4,10,5,5,5],8,2,7],[[9],[2,4,4]],9]] + +[4,7,0,6,4] +[4,7,0,6] + +[[2,5],[[],[2,0,9,[],[5,5]],[[],9,10,[5]],[7,3,2,[1,9,0]]],[[5,0,[0,10,1],[3,9,4,1,1],7],6],[0,[[5,2],[6],3,[6,9,2],[1,9,0]],[[10,9,3,2,9],2,[]]],[9,[10,[7,5,4,6,6],[8,6],[],[9,0]]]] +[[[[3,5,9,3,1],[9,3]],[3,[2,2]],4,[2,[],7],5],[[],2]] + +[[4],[[3],[],[[2,9,10,6],[5,2,8],[],[5,8,5],5]],[7,[]],[0,7,0,[5,[1,6,7,6],9,[4,9,10,10],[1]]]] +[[[[],7],[5],9],[3,[1],[7,[],9,0,[2,9,4]]],[[10,[9,0,2],9]],[[[4,3,0],1]]] + +[[6,4]] +[[[[],[8,7],[3,1,7],[9]],[[6,6,0],7]],[[]],[[],2,[[],[5,5,5]]],[10]] + +[[[[0,10],[0],8,2,[5,7,5,5]],[8,[8,3],2,[8,10,4,7]],[[8]],[]]] +[[9,1,[1,[1],6]],[[[]]],[1,7,6,0],[[[],[10,8,1,5,8],0,6,9],[7,3,2,2,[]],[],[[],[3,8]]],[[[9,0],5],[[7],[7,0],4,[]]]] + +[[8,2],[2,0,[[1,5,10,9],0,0,0,[]]],[[6,10,[8,1,2,9],[8,2,0,10],[1,7,4,8,1]],[10,5],2,8]] +[[7,[2,5,[6,4,3,0]],[[2,9,0,0],1,[],[0,7,7]],[[9,4,2],8,10,9],0],[4,3,[5,3,[8,9,2,9]],2,3],[],[3,[10,[4,10,8,6,7]],[7,[9,9,6,2,10]],[],7]] + +[[],[[8],8,[2],3,[]]] +[[[]],[1],[]] + +[[[5]],[[4],[]]] +[[],[10,[4,7,9]]] + +[[[[9,2,3,3,0],7,6],[]],[[[10],1,2,0],[[4,4,5],0,[2],[7,2,8]],4,[[7,8],[0,9,2,4,4],[5,10,10,0,4]],[[0,9],[10,3,3],[],[1,0,8,1]]],[4,[0,0,8,6,[1,1]],9]] +[[[[],4,[9,7,8],7,[5,3]],7,4,4,4],[[[8,9,6,2,5]],8,[0,[],[4,8],[]],[],[[]]],[[[7,5,1]]],[[8],[],[],7,10]] + +[[],[1,[],[],4,[9,9,[8],4]],[9,[[2,4,2,2],3,8,7,7]],[[[4,10,8],[9,1],1]]] +[[[[3],[6],[9]],[4]],[[10,5,0,6],4],[],[[],[3,[5,9,6,8],[10,10,5],[2]]]] + +[[[[0,0,8,6,3],[]],1],[[[1,5]],[[4,10,2,1],2,2,[1,8,0]],10,6],[3,7,5,[[],0]],[[[1],9],[[3,3,7,8]]],[]] +[[[],[2,[3,5],[2,7,1,9,6]]],[[[8]],[0,0,[],[5,6,5,1]],[[4,8,1],[6,3,6],4,[0,7]],2],[9,5,[[2,8,10],2,7],[],10],[9,5,2]] + +[[[[9,2,6],6,10,4],4,[],[[8,4,5],[],[7,6,10,8,9],7,[8,6,1,9,6]]],[1,[2,[5,3,2,0]],[[1,6,9],[4,6,5,6],[9,9,1],[6,3,10]]],[[0,[4]]],[]] +[[[2,4,[]],[4]],[10,1],[3,[[8,7]],[]],[6,2]] + +[[[7,[5,1],7,[7,0,5,7,10]]],[[[10,0],[2,1,8,1],0,[9,2],[3]],6,8],[]] +[[[]],[[],4,[]],[5,[[9,6,0,7],5],0,[]],[],[0,[1],[[],4,0,5],7]] + +[[[[7,3,6,6,7]],5],[[[7],[7],0,[3,7]],0,9],[],[8,[[8,6,0],0],[[],[3,8,6],5],[7,0,2],[10,7,2,[7,3,0,3],1]]] +[[],[],[[[4,9],[],[4,6,1,6],[9,9,4,3,4],9],6,0,9,7]] + +[[9,1],[7,8,9],[],[0]] +[[[[]]],[[],[],[8,4,[7,9,2]],0],[[[8,8]],2],[4,4,10,4]] + +[[10,8,10,[]],[6,0,[]],[7,[],[],[[7,5,9,10],6,[1,8]]],[[1,10,[8,5,5,7,0],3,2],7,8,5,2]] +[[10,1,[[6,0,10,6],3,[5,8,10,2,9],10,[3]],[[]],1],[[],3,6,[[2,0,9],[1,6,10,5,8],[5,6]]],[8,[0,[5,3,3,6],4,[]],3,[[5],7,9,[10,0,10]]],[6,[1,[8,6,6,8],[8,6]],1,2],[]] + +[[[9,[9,4,0],[2,10,5,2,8]],[],2,[],[[5,10,10,5,1],[9,4,8,9],[2,8,1,7,3]]],[],[],[3,0,[[7,4,8]],[6,[7,0,9,0,8],10],6]] +[[[[10,1,4],[8,3],[2,4,9,5,7],[0,0],[3]],2],[5,7,9,9],[4,0,7]] + +[[4],[[]],[6,10]] +[[[7,10,4,[],[1,2]],6,5,5],[8,[4,[9,3,4],[0],10,3],1,[[7,5,2],[8,7,9]],4],[[10,1,6],10]] + +[[[],[8],[[],6,[3,6,1],6,[4]],6],[[7,4,[9,3],3],[],1,[],9],[4]] +[[[[8,9],8,6],[[7,2,1],5,5]],[1,[[3],[10,6,5,2],4,[8],[2,9,10]],0,1,1],[8,[7,[8,4,6],8,7,[4]],1,[]],[0,8,6,9,4]] + +[[8,5,[0,1,[],[2,7,7]]],[3,[],3,[8,[1,0,3,5]],4],[[[],3,[]]],[[10,[1,5]],9,[[2,8,9],[5,3,8,1,2],8]]] +[[5,[[9,0,8],5],10,10],[1,6],[3,1,[[],[5,8,7]],[2,3]],[5,[[],[],3,[8],6],5,[6,3,7,[10,9,1,8]]],[1,[[],[7]],5,7]] + +[[9,4],[0,[],[[9,2,3,9],[1],7],5],[],[7,1,3],[[[3,4,7,8,0],7,7],4,[7,[],9,[2,1,0,8],[2,6]],8]] +[[[9,[9,3,8,2,10]],[]],[[[0,10,0],10,8]]] + +[[[[],[0],[2,6,1,0],[10,10],[9,10]],[[9],3],[[7,4,5],[2,4,2],10,[8,5],2],[[1,2,2],[7,7],4,[3,9,6,7]]],[],[[],[0],7,[[4,1,0,5,0],[5,2,7,9,5]],[]]] +[[],[[]],[[[]],6,0,9,[[6],[2,6,1,4],6,[6,9,2,8],0]],[[3,[5,6,5],[1,10,4,4],[9,7,3,6],[0,6,2,5,3]],[],[]]] + +[[],[[[],3,8,5],10,[],[9],[8]],[10,10,[]]] +[[],[[[4,2,1,0],[10,5]],[[8,3,0,6]],[9,[1,8,1]],[]],[[[8],[1],[2,8,1,1,5]],9,1],[]] + +[[2],[],[[2,[2,6,7],[3,8]]]] +[[[6,[8]],5,1]] + +[[8,6],[0]] +[[],[],[4,5,[8,[0,5,10,6],10],0],[5,0],[[[3,1,6,6]],4,4]] + +[[],[3]] +[[[3,4],2],[[10,[1,10,3,9],6],6],[[[2,10,7,3],1,10,[1,3,10,5,7],7]],[8,[[7,5,4],[5,2,7,0,7],10,[]],6,0]] + +[[7,8,1],[5,[[7],[8,10,8,3,1]],[10,[],[10],[]],[3,[7,8,1,0,0],0,4]],[]] +[[5,0,[5,0,[1]],[[3,9],[0,10,7,7,3]],[]]] + +[[],[4,4,10,3],[8,[10,[4]],3,[]],[2,6,[[9,1,0],[],1,[4,8,6],7],[0,0],[]],[[5],8,[[6,4],5]]] +[[[3,1,[]],[[0,10,2],[0],[9]]]] + +[1,10,9,8] +[1,10,9,8,7] + +[[3]] +[[[2,5,2,[5,5]],9,[[10],10],7],[7,0],[3,[6,4,[0],3],4],[[4,3,10,[9,8,3,6,3]],6,[3,[],[],8,[0]]]] + +[[[5]],[[[1]],3,7,1],[3]] +[[6,[[6,2,1,0,7],[10],4,[],[3,9,6]]],[[[3,7,4],6,[],3,[6,6]],7,2,[1,5,[3,4,5,3,1],8]]] + +[[[3,[]],5,7,2]] +[[[[10,6,5,3]],0,7,[9,[4,0,4],[2,9,3]],9],[8,0,[[8,6,2],6,8]]] + +[[1,[],4,[6]],[]] +[[3,1,[[7,6,2],0,7,[0,10,8,3,9],8],2],[[],4,0,[6,[5,3]]]] + +[[],[6,2,[8,7,6],[10,8,9],8]] +[[[4]],[[2,[0,1,5,0],[2],6]]] + +[[[2,[0,3,6],[3,4],10,[7]],[[7,4,8,8],9,[9,2],5,7]],[7,10,[[10],0,[5,8],[8,2,10,3],1],5,3]] +[[1,2],[10]] + +[[[6,[2],[8]],[[8,4,6,8],8,[0,8,3,8,9],4],[[3,9,7,7,2],4],[[2,6,7,2,9],[0,10,7,4],0]],[[9,[8,5,9,1,7],8,[1,6,0,6,9]],[[]],1],[7,9,[6,[],[10,2,8],2,[6,8,6,1]]],[]] +[[[],[3,7,0,7]],[],[9],[[]]] + +[[8,1,4,6,[1,[9,8],[10],7]],[1,7,[]],[[6,0,[10,1,1]],[[0,1,5]]]] +[[[[0,7,0],3,5,[4,4,6,5,1]],2,[[9,6,0],9,0,[4,4,8,4]],[[0,2,7,10,1],9,2,[]],3]] + +[[[[10,1],2],0,[[3,5,4,2],8,5],2,[[6,1,2,0],9]]] +[[],[[[],7,1]],[0,[[0,9,7],[6,5,10]],2,[],1],[[[4,4,3,9,2],[3,4,7,4,5],9],[3],6]] + +[[[[3,4,0,9],9],0,[[3],0,[1,2],[7,4,2,9,8],[4]]],[0,[]],[[0,4,3,4],[[1]],[3,[3,9,7,9,7],[7,7,3],2,[8,9,8]],[9,6,[5]],1],[],[[],1,7,1]] +[[9,6],[[],5,[[3,10,8,3,6]],5],[1,10,7]] + +[[[7,4,[7,2,1,2,2],[]],2,[9,[8,4],1],9,[[10,7,4],[7],6,9,6]]] +[[[9,[1,2],5],[[6,10,5,9],[2,9,5],[1,6],[7,1,10]],5],[[8,[4,5],8,[5,4]],1,[[7,7],[4,5,3,0]],[],[[],9]],[[5,[]],[[0,7,5,4,0],[6,3,4,9,3],[6,8,6],[3,2],[0,7,2,4,9]]],[0,[[5,3,0,2,3],4,9,1]],[[8],[7,4,1]]] + +[[2,[]],[7,10],[],[0,9],[[]]] +[[2,3,[4,[6,4,8,1],0,[8,0]],[[1,4]],5],[[3,[3,2]],0],[[[5,3],[3,3,4],0],3,[[],[8,10,0],2,5,[6,5,0]]]] + +[[2,[[7,9,0,5],[4,7],2,[]]],[[[6,3,1]]]] +[[1,[6,[8,2,4,5]],0,10],[5,6,[5,[9,9,3]]],[[[10,4],0,6,[]],[0,[]],[[9],9],[]],[[[],[1],[10,6,9,7]],8,[[0,0,3,10,9]],7],[7,5,4]] + +[[[[0,6,3,5,4],5]],[],[[[1,5],1,[],3,8],9,[[6,4,1],[9,2,8],[]],[1,[3,3,6,9],[4,2,1,5],5,10],[8,5]],[]] +[[[3,[6],[0,4,10],[5,8,9,3],[6]],7,[[0,6],1,0,7,[1,3]]],[0,9,[8,5],[],4],[0],[4,3,[],7]] + +[[[[6,4,7,6,9],[7,4,1],[9,8,9,3,3]]],[[4,4],[2],[10,[0,10,4,5,10]],5,2],[],[[[6],[]]]] +[[[[8],10,10],3,[[],0,[4,5,3]]],[[6]],[[],5,5,[[2],10,6,[3],9],7]] + +[[6,9],[[2,4,[5]],1,4],[[[3],4]],[5],[5,[5,[0],[8,3]],0]] +[[[7,[1,10,7,6,4],3],[],[7,[10,4,8,7],5,6]],[[0,4,4,[5,7,10,3]],[0]],[]] + +[[1,10,9],[[1,[0,4,3],5,[2,10,4,9,8]],[[],4],6]] +[[],[[[6]]],[[10,9,1],[1,0],4,6],[[3,0,[5,1,0,3],[]],2,8,[[4,8,8],[3],[2,6,10]]],[4]] + +[[4,[[6,0,6,5],0],6],[[[1,1],[9,7]],2,9,[]],[[0,[]],5,[]],[0,[2,0],2,9,9]] +[[[3,[1,2,7,2,9],[9,3,6,0,5],10],6,10],[],[[10,1,10,8],2,0,10],[3,8],[[0,[5,8,1,8],[4,9,4,3,2],3],[],2,[[4,1,4],[10,9,6,2,10],[6],6]]] + +[[8,[8,2,5,3]],[8,[2,[9],7],3],[9]] +[[],[[8]]] + +[[2,[1,[6,0],9,8]]] +[[[[],[3,2,6,0],2]],[5,10,[[3,8],[9,0,3,5,0],[5,10,1,5,8],[1,0],9]],[2],[[10,1,[8,3],10,[]],7,[4,1],[[0,5,6,2,4],[3],[5]],4],[3,7,[],7,4]] + +[[1,[[1,0,2,0,9],[9,0,4,10],2,[6,3,5,2,9],[]],5,[7,[10,9,9,4,9]]]] +[[[3],10],[0,[8,4],[[3]],3,2],[6,[[1,2,3],[10,2,8,10],0],[7,[4,4,9],[0,1,6,3,0],[7],[7,10,6,4]],[9,[9,10,9,10,3],[]],[[9,3],6]]] + +[[8],[2],[]] +[[[3,[1,3,1,6],[9,5,4,9,9],[]]],[3]] + +[[[8,[2,7],[0],9,[9,8,7,0,0]],[4,[8,4,6]]]] +[[]] + +[[10,4,8,[0,[4]]],[[[8,8],[9],[9,7],[8,3,2,9]]],[],[1,1,9,[]]] +[[],[3,[4,5],[2,1],9,[8,[],6,[5],[10,4]]],[2,[[9]]],[[6,[3,1,6,7],[5,5,10],[9]]],[[0,[7,7]],7,[[10,6,0,10,3],[]],[9,[4,4]]]] + +[[[9,8,[1,10,5,3,6]],0,6],[5]] +[[[10,4,2,[0,3,3],8],2,5],[[1,[],[1,1]],[[6,1],[1,6,6,0,8]],[0,[],5],[]],[6,[],[[8,1,8,10,4],3,[7,5,4,10]],9,9]] + +[[8,1,[2,2,[6,4,9,0,4],10],7],[],[[5,9]],[2,2,[[0],9,7,[1,1,10,1],2],[10]],[0,2]] +[[],[[[],9,[],[4,0],[1,4,2,1,5]],[[9,5,3,10]],[[5],4,2]]] + +[[0,3,[[6,4,3,9],[7],6],3],[[4],[9,[2,4,3,2],[],0,0],[6],[]],[8,10,10,[[],[0,2],1,6]],[7,[0]]] +[[[1,[6,9,10,3],1,[1],5],[[1,7,1,9,1],3,5,[3]],[[]],0],[],[5,[],[[1,8,6],2,0,[10]]],[[],5,[[5],6,2],[],8]] + +[[1,4,1,[],[]],[]] +[[],[7,[9,[1,6,8,5,7],[7,5,9,8],[7,7,2,0],[10,2,8,4,2]],9],[[2,4,5],2]] + +[[6,9,[5,[5,0],[2,7,1,1],6,5],0],[0,6,[[2,8]],[5,[3]]]] +[[3],[8,6,[4]]] + +[[10],[2,10,[[5,5,0]]],[1,7,8,5,[[],7]],[2,[[9,5,0],[0,7,3]],[0,5],3,[8,9]]] +[[0,[],1],[[],[[1],[10,2,0],0],4,[]],[[8,6],4,[10,[],6,9],7,[2,0]],[0,[10,10,[5],1,[0,2,10,3,0]],1,1],[3,[2,10],[10,[0,4,5,3]]]] + +[[0,[7,[5,9,5]]]] +[[[9,10,[]],[[0]],10,9,[[9]]],[[[],[6,6,9,4],6,[0,2,8],6]],[[6,0]]] + +[[[[2,5,7],0,[7],[1,2,1]],[],3,[[],[10,0,8,0,4],1],9],[],[[0,9,[]]],[]] +[[],[10],[6,[],1]] + +[[3,[],[[6,5,7,2],[4,2,10],[3,8,2,6],[6,7]],5,[5]],[[],[],0],[2],[],[10,8,10]] +[[5,4,2,8],[2,[1,3,[1]],[6,[],9,2,7],[7,3,10,[6,10,8,1,4],10]],[[],0,[[7,7],[1,5,7,6,2],[10,4,2,0,4],5,[10,0,9,1]]],[[[5,9,5],1,[3,7],2],3,[[7,5,3,7,0],[10,3],[9,6,5,9],[],4]],[8]] + +[[4],[[2],0,[[]],[6],9],[[[],2,[],[6,3,5,6,3],3]]] +[[9,[[2,10,4,4],3,8,[10],[5,3,0,10,8]],[[1,0,3,9],1,2,0,1],7]] + +[[[6,[4],7,[9,7]],8,[8,2,5]],[],[[],6,[[2,3],[3,6,9,0]],4,9],[1,4,[[0,9,10],[1,9,8,6],10],8,1]] +[[0,[[10,6],5,[3,0]],9,9,[]],[9,[3,[7,0,7,8],6,[8,4],[]]],[[9],[[1,0,10,2,1],0,0,[5,3,2,3]],5],[3],[[]]] + +[[[4,[3,3,7]],1],[3]] +[[[[8]],0],[10],[4],[[2,[6,1,5,3],2,[5,4,3,2],[2,9]],[9,[1,8],[10,1],1],9]] + +[[[10]],[3,8,[],[8,2,[9,10,2,0],0],[1,6,[1,3,7],[6,8],8]],[10,[[4,7,8],6,1],3,3]] +[[8,[],0]] + +[[10,[[8,8,8,3,3],6],[[1,1,7,1],[7,8,2],[1,8,3],[4,7,9,1]],[[]],[[8,1]]],[1,[10],6],[]] +[[4]] + +[[9,[10,6],[1,3]],[]] +[[[[8,5,4,8,8],2,[8,3],3,7],1],[10,[],7,[9,6,3,3,10]]] + +[[9],[5,[],5,[]]] +[[[[],6,[9,3,9,4,7]],6,[[5,9,10,4],0],6,3],[[[5,8],[9]],[],[9,6,5,[4,8],2],[[7],[5]],[[]]]] + +[[1],[8,[2,[],7]],[10,[10,[]],1,10],[[[8,0],[]],1,[[]]],[2,[[1],6,3,4],6,[],10]] +[[5,[[1,5,2,1],3,[10,2],[5,6],2],[[9,5],[9,9,4,4],5],[[0,2,4,1]]],[[[8,9,4,5],[0,2,9,2],5,[10,2,5],[]],0,[1,8],0]] + +[[],[1,3,8,[1,[4,8,8],7,9,6]],[[[4,6,2],[7,5,0],[2,1,7,8,1],[0,1,6],2],5,[8,4,[6,1,7,3],1],1],[4],[]] +[[[[5,2],[9,2,1],[5],7,[]],7,7,[]],[3,[3,[3,9,5,4],[7,6,4,10,0],[10,10,0,3,8],[]],0],[[[7,1]],[[],9,1,[8]]],[]] + +[[[],4,[5,0,2,9,4]],[[]],[[4]],[],[[[1],7,[6,4,1,7],[5,4,5,9]],10,7]] +[] + +[[[10]],[]] +[[[3,9,2],[0,[6,0,8,0,8]],[[],[4,1],[10,9,8],[1,0,2,3]],1,[[3,7,8,3]]],[[7,[10,2],[1,4,4,5,1],[8,8],3],[6,9,[10,8],5]],[[10,[],[1,7],[6,3]]],[[[2]],0,3]] + +[[[[1],0]],[[4,8],6,[[3,3,9,7,1],[7,10,7,10]]],[[[],8,[10,10,5,7]],[[0,3]],[],4],[5,[],[[],2,0,8],[],[[7,5,5,5]]]] +[[9,[[9,10,2,8,1],2,10,7,5],[5,[1]],[[4,4,0,2,10],7,[4],10,6]],[],[6],[[[7,1,4],[0,1,5,9,8],5,8,0],[[1,7],[6,0,1,2,7],[1,4,5],7,3]],[9,[],6]] + +[[10,0,[1,7,0,[5,8,3,4]]],[[3,3,[10,10],[4,2,10,9],[]],[6,9,3],[3],[[10],[0,4],6,[4,2,9,6],10]]] +[[4,[[],[3,2],[6],10],[8,[10,4,9],5,[10],[7]],4,[4,[],9]],[[5,[5,3,8,0,9],[1,5,1,2,8],[1,0]]],[],[5,4,[[5,4,5],[1,9,10,10]],[]]] + +[[[6,[9,5,0,7,9],[3,6,7,7,3],6,[5,8,5,8]],5,6,10,[[9,1,6,1],[2,0,9,2,3],8,5,[4]]],[2,[[1],2,0,[7,4,9,9,9]],[5,2,0]],[[[],[4,7,1,7,3],1,10]],[[4,[9,4,3,8,5],2],2,1,4],[7,7,5,8]] +[[10,1,6],[0]] + +[[[9,9,0,[9,5]],2,10],[],[0]] +[[[7,5,10,5],1,[[7],6,10,0],[[8,8],[3,6,10,9],[10,4,7],0]],[2],[[5],[[1]],8,5,[10]]] + +[[[[1,2,9,8],8,[6],2],3]] +[[[[7,9],[2,4,1,7,2],[]]],[[10,7]]] + +[[3,2],[[[9,0,3],[3,8,10],[10,0,6,0],2],[],[1],6,[[9,0,8,8,6],8]],[3,1,[9,6],[]],[7,9],[3,[[7,8],3],10,[[5,7,5,3],5,[8,8,1,0]]]] +[[5,[2,[6,6,8,6],[1,2,7],[10,9],[3,9,4]],[[1,10],[4,6,3],9],[9,1,1,6],[[1,5,4,7,9],1,[]]],[[6,8,9],9,[[4,8,8,3,8],3]],[2,[3,9,[1,9]],5,6]] + +[[8,6,10,[1]]] +[[3,8,[[],[],10,[4]],3,5],[0],[3,[0,[8],[2,7,6,4],[7,6,7],[0,7,10,1]],[4,8,[4,0,9,7]],7,[8,[1,2,7,7,4]]],[[[2,1,9,0],[],10,[9,5,1]],[[],[0],[10]]],[1,9]] + +[[[7,[8]],[4],[2,[],[7,7],9],7],[[],[[6],[2,6,1]],2,5]] +[[],[],[[5,0,2],[1],2,[8,9,[6,6]],[8]]] + +[[7,9,4,10,6],[[1,[4,7,8,5,6],[9]],[8,2,3,9,1],4,1]] +[[[9,[2,4,10,7],7],[6,[3,4,10,9,3],[]],[9,[1,7,8,6],[8],2],9,[]],[[],9,4],[[[5,4,4,5],2,[1,7,9],6]],[2,3,6]] + +[[],[[[1,2,8],3],0],[[0],[[],5,[7,6,6,1,9]],8]] +[[[6],9,4,10],[[0,7,[10,10,3,10],[3]],6],[[],[4],[[],[8,6,5,1],9,[],[1,3]]]] \ No newline at end of file diff --git a/AdventOfCode2022/Solutions/Day11.swift b/AdventOfCode2022/Solutions/Day11.swift index 0d76f9b..882790c 100644 --- a/AdventOfCode2022/Solutions/Day11.swift +++ b/AdventOfCode2022/Solutions/Day11.swift @@ -43,7 +43,7 @@ struct Day11 { monkeys[i].commonTestNumber = commonNumber } - for round in 0..<10000{ + for _ in 0..<10000{ for (i, _) in monkeys.enumerated() { while (monkeys[i].items.count > 0) { diff --git a/AdventOfCode2022/Solutions/Day13.swift b/AdventOfCode2022/Solutions/Day13.swift new file mode 100644 index 0000000..a290546 --- /dev/null +++ b/AdventOfCode2022/Solutions/Day13.swift @@ -0,0 +1,121 @@ +// + +import Foundation + + +struct Day13 { + + func solution1(_ input: String) throws -> Int { + + let inputPairs = parse(input) + + var sum = 0 +// print("no of pairs: ", inputPairs.count) + print(inputPairs.last!) + for (index, pair) in inputPairs.enumerated() { + let lhs = try Packet.createFrom(pair.0) + let rhs = try Packet.createFrom(pair.1) + + if lhs < rhs { + sum += (index+1) + } + + } + + return sum + } + + func solution2(_ input: String) throws -> Int { + + var inputPairs = try parse(input) + .flatMap { [$0.0, $0.1] } + .map(Packet.createFrom) + + let twoPacket = try Packet.createFrom("[[2]]") + let sixPacket = try Packet.createFrom("[[6]]") + + print("num of paris", inputPairs.count) + + inputPairs.append(twoPacket) + inputPairs.append(sixPacket) + + let sorted = inputPairs.sorted() + + + return (sorted.firstIndex(of: twoPacket)!+1) * (sorted.firstIndex(of: sixPacket)!+1) + } + + + func parse(_ input: String) -> [(String, String)] { + var pairs = [(String, String)]() + + var l1 = "" + var l2 = "" + + input.enumerateLines(invoking: { line, _ in + if line.isEmpty { + pairs.append((l1, l2)) + l1 = "" + l2 = "" + } else { + if l1.isEmpty { + l1 = line + } else { + l2 = line + } + } + }) + + pairs.append((l1, l2)) // FUUUU...... + + return pairs + } +} + +func isInOrder(_ lhs: Any, _ rhs: Any) -> Int { + + if let left = lhs as? Int, let right = rhs as? Int { + return left - right + } else if let left = lhs as? [Any], let right = rhs as? [Any] { + + let min = min(left.count, right.count) + + for i in 0.. Bool { + return lhs.str == rhs.str + } + + let data: [Any] + let str: String + + static func createFrom(_ string: String) throws -> Packet { + let array = try JSONSerialization.jsonObject(with: string.data(using: .utf8)!) + return Packet(data: array as! [Any], str: string) + } + + static func < (lhs: Packet, rhs: Packet) -> Bool { + return isInOrder(lhs.data, rhs.data) < 0 + } + +} diff --git a/AdventOfCode2022/main.swift b/AdventOfCode2022/main.swift index 340b35a..b28d356 100644 --- a/AdventOfCode2022/main.swift +++ b/AdventOfCode2022/main.swift @@ -49,6 +49,9 @@ let inputLoader = InputLoader(inputPath: inputsPath) //day12 //let result = Day12().solution1(inputLoader.loadFileAsString("day_12.txt")) -let result = Day12().solution2(inputLoader.loadFileAsString("day_12.txt")) +//let result = Day12().solution2(inputLoader.loadFileAsString("day_12.txt")) +//day 13 +//let result = try Day13().solution1(inputLoader.loadFileAsString("day_13.txt")) +let result = try Day13().solution2(inputLoader.loadFileAsString("day_13.txt")) print(result)