mirror of
https://github.com/mx42/adventofcode.git
synced 2026-01-14 05:49:52 +01:00
Add 2020 day 12
This commit is contained in:
759
haskellAoC/inputs/2020/12
Normal file
759
haskellAoC/inputs/2020/12
Normal file
@@ -0,0 +1,759 @@
|
|||||||
|
F70
|
||||||
|
S4
|
||||||
|
E3
|
||||||
|
S4
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
W3
|
||||||
|
F75
|
||||||
|
S5
|
||||||
|
L90
|
||||||
|
E1
|
||||||
|
S4
|
||||||
|
F98
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
S3
|
||||||
|
L90
|
||||||
|
W1
|
||||||
|
F39
|
||||||
|
W2
|
||||||
|
L90
|
||||||
|
E1
|
||||||
|
F99
|
||||||
|
S3
|
||||||
|
E5
|
||||||
|
F63
|
||||||
|
N4
|
||||||
|
F26
|
||||||
|
E1
|
||||||
|
R180
|
||||||
|
F58
|
||||||
|
N3
|
||||||
|
F4
|
||||||
|
E1
|
||||||
|
F45
|
||||||
|
E4
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
F76
|
||||||
|
S1
|
||||||
|
F22
|
||||||
|
R90
|
||||||
|
N1
|
||||||
|
W1
|
||||||
|
F76
|
||||||
|
W1
|
||||||
|
N5
|
||||||
|
E3
|
||||||
|
L180
|
||||||
|
S5
|
||||||
|
F87
|
||||||
|
W4
|
||||||
|
L90
|
||||||
|
F9
|
||||||
|
S2
|
||||||
|
F11
|
||||||
|
N4
|
||||||
|
L180
|
||||||
|
S3
|
||||||
|
R90
|
||||||
|
F92
|
||||||
|
L90
|
||||||
|
S1
|
||||||
|
E4
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
F1
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
F27
|
||||||
|
N3
|
||||||
|
E1
|
||||||
|
N1
|
||||||
|
E3
|
||||||
|
L180
|
||||||
|
S1
|
||||||
|
S5
|
||||||
|
R180
|
||||||
|
W5
|
||||||
|
W5
|
||||||
|
F60
|
||||||
|
S5
|
||||||
|
W5
|
||||||
|
L270
|
||||||
|
N3
|
||||||
|
R90
|
||||||
|
F65
|
||||||
|
S5
|
||||||
|
F53
|
||||||
|
W5
|
||||||
|
L90
|
||||||
|
N1
|
||||||
|
W5
|
||||||
|
L180
|
||||||
|
F87
|
||||||
|
W2
|
||||||
|
R180
|
||||||
|
S2
|
||||||
|
F77
|
||||||
|
N1
|
||||||
|
F81
|
||||||
|
L180
|
||||||
|
E5
|
||||||
|
N5
|
||||||
|
W4
|
||||||
|
L90
|
||||||
|
W4
|
||||||
|
L90
|
||||||
|
E3
|
||||||
|
N2
|
||||||
|
L90
|
||||||
|
W2
|
||||||
|
S1
|
||||||
|
F19
|
||||||
|
W1
|
||||||
|
F82
|
||||||
|
N4
|
||||||
|
R270
|
||||||
|
E5
|
||||||
|
L90
|
||||||
|
N3
|
||||||
|
R90
|
||||||
|
F81
|
||||||
|
L270
|
||||||
|
W3
|
||||||
|
R90
|
||||||
|
L270
|
||||||
|
N3
|
||||||
|
F53
|
||||||
|
E2
|
||||||
|
F84
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
F39
|
||||||
|
R180
|
||||||
|
N1
|
||||||
|
L90
|
||||||
|
F11
|
||||||
|
S2
|
||||||
|
W5
|
||||||
|
F20
|
||||||
|
W1
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
F76
|
||||||
|
E3
|
||||||
|
S5
|
||||||
|
E3
|
||||||
|
S5
|
||||||
|
W5
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
N3
|
||||||
|
E3
|
||||||
|
S5
|
||||||
|
F27
|
||||||
|
W1
|
||||||
|
L90
|
||||||
|
F65
|
||||||
|
W3
|
||||||
|
R180
|
||||||
|
F84
|
||||||
|
W2
|
||||||
|
N5
|
||||||
|
F43
|
||||||
|
L180
|
||||||
|
W3
|
||||||
|
F11
|
||||||
|
W2
|
||||||
|
R90
|
||||||
|
N1
|
||||||
|
R90
|
||||||
|
N5
|
||||||
|
W1
|
||||||
|
S4
|
||||||
|
N4
|
||||||
|
F88
|
||||||
|
N3
|
||||||
|
F87
|
||||||
|
W3
|
||||||
|
L90
|
||||||
|
F77
|
||||||
|
S5
|
||||||
|
F18
|
||||||
|
N4
|
||||||
|
F97
|
||||||
|
E5
|
||||||
|
S5
|
||||||
|
R90
|
||||||
|
F94
|
||||||
|
N5
|
||||||
|
L180
|
||||||
|
F8
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
W2
|
||||||
|
N2
|
||||||
|
L180
|
||||||
|
F4
|
||||||
|
R90
|
||||||
|
W4
|
||||||
|
S3
|
||||||
|
R90
|
||||||
|
F38
|
||||||
|
S3
|
||||||
|
E1
|
||||||
|
N5
|
||||||
|
F4
|
||||||
|
E3
|
||||||
|
R90
|
||||||
|
S4
|
||||||
|
F95
|
||||||
|
E5
|
||||||
|
F77
|
||||||
|
F32
|
||||||
|
W5
|
||||||
|
F3
|
||||||
|
R90
|
||||||
|
N1
|
||||||
|
W3
|
||||||
|
F96
|
||||||
|
L270
|
||||||
|
N2
|
||||||
|
E2
|
||||||
|
F30
|
||||||
|
S3
|
||||||
|
W2
|
||||||
|
R90
|
||||||
|
F57
|
||||||
|
R90
|
||||||
|
E1
|
||||||
|
R90
|
||||||
|
N5
|
||||||
|
E1
|
||||||
|
N4
|
||||||
|
W4
|
||||||
|
N1
|
||||||
|
W2
|
||||||
|
F47
|
||||||
|
N5
|
||||||
|
W3
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
F50
|
||||||
|
E3
|
||||||
|
R90
|
||||||
|
F27
|
||||||
|
N3
|
||||||
|
F78
|
||||||
|
N2
|
||||||
|
R90
|
||||||
|
F100
|
||||||
|
S3
|
||||||
|
F67
|
||||||
|
R90
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
N4
|
||||||
|
F88
|
||||||
|
S4
|
||||||
|
E2
|
||||||
|
S2
|
||||||
|
F31
|
||||||
|
S5
|
||||||
|
R90
|
||||||
|
W3
|
||||||
|
R180
|
||||||
|
W2
|
||||||
|
F97
|
||||||
|
F31
|
||||||
|
N1
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
F50
|
||||||
|
N3
|
||||||
|
W2
|
||||||
|
L180
|
||||||
|
F85
|
||||||
|
L180
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
F95
|
||||||
|
N4
|
||||||
|
L90
|
||||||
|
E1
|
||||||
|
S2
|
||||||
|
R180
|
||||||
|
N2
|
||||||
|
F19
|
||||||
|
N5
|
||||||
|
E5
|
||||||
|
S1
|
||||||
|
W5
|
||||||
|
R90
|
||||||
|
N1
|
||||||
|
L180
|
||||||
|
F76
|
||||||
|
S4
|
||||||
|
E5
|
||||||
|
S2
|
||||||
|
S5
|
||||||
|
E3
|
||||||
|
F53
|
||||||
|
L90
|
||||||
|
S3
|
||||||
|
E4
|
||||||
|
S1
|
||||||
|
E1
|
||||||
|
L90
|
||||||
|
F54
|
||||||
|
W1
|
||||||
|
S1
|
||||||
|
E2
|
||||||
|
N1
|
||||||
|
R90
|
||||||
|
S3
|
||||||
|
R90
|
||||||
|
F63
|
||||||
|
L90
|
||||||
|
W4
|
||||||
|
L90
|
||||||
|
F47
|
||||||
|
L90
|
||||||
|
E5
|
||||||
|
F23
|
||||||
|
W2
|
||||||
|
F97
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
F54
|
||||||
|
W3
|
||||||
|
S4
|
||||||
|
W3
|
||||||
|
S2
|
||||||
|
F67
|
||||||
|
W1
|
||||||
|
S4
|
||||||
|
R90
|
||||||
|
S5
|
||||||
|
R90
|
||||||
|
W4
|
||||||
|
L180
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
F19
|
||||||
|
F42
|
||||||
|
S4
|
||||||
|
F91
|
||||||
|
R90
|
||||||
|
L180
|
||||||
|
F64
|
||||||
|
L180
|
||||||
|
W4
|
||||||
|
R90
|
||||||
|
F32
|
||||||
|
N3
|
||||||
|
F18
|
||||||
|
E2
|
||||||
|
L180
|
||||||
|
N4
|
||||||
|
E2
|
||||||
|
N1
|
||||||
|
E4
|
||||||
|
N4
|
||||||
|
F54
|
||||||
|
W5
|
||||||
|
F50
|
||||||
|
N3
|
||||||
|
L90
|
||||||
|
N5
|
||||||
|
R90
|
||||||
|
F100
|
||||||
|
E4
|
||||||
|
N1
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
F8
|
||||||
|
L90
|
||||||
|
E4
|
||||||
|
L270
|
||||||
|
F95
|
||||||
|
L90
|
||||||
|
F44
|
||||||
|
E5
|
||||||
|
R90
|
||||||
|
F79
|
||||||
|
N5
|
||||||
|
F61
|
||||||
|
S2
|
||||||
|
F71
|
||||||
|
L90
|
||||||
|
F4
|
||||||
|
N3
|
||||||
|
F25
|
||||||
|
L180
|
||||||
|
F7
|
||||||
|
W4
|
||||||
|
F96
|
||||||
|
R90
|
||||||
|
S1
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
F9
|
||||||
|
N2
|
||||||
|
W5
|
||||||
|
F1
|
||||||
|
R90
|
||||||
|
N2
|
||||||
|
F36
|
||||||
|
W4
|
||||||
|
R90
|
||||||
|
F96
|
||||||
|
W2
|
||||||
|
F26
|
||||||
|
S2
|
||||||
|
F28
|
||||||
|
E4
|
||||||
|
N1
|
||||||
|
F33
|
||||||
|
N5
|
||||||
|
F51
|
||||||
|
W2
|
||||||
|
S1
|
||||||
|
F40
|
||||||
|
N3
|
||||||
|
F67
|
||||||
|
E3
|
||||||
|
S2
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
S3
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
F75
|
||||||
|
E3
|
||||||
|
N5
|
||||||
|
E2
|
||||||
|
F52
|
||||||
|
E3
|
||||||
|
F7
|
||||||
|
N4
|
||||||
|
F4
|
||||||
|
S4
|
||||||
|
L90
|
||||||
|
S2
|
||||||
|
W5
|
||||||
|
F85
|
||||||
|
F7
|
||||||
|
L180
|
||||||
|
E1
|
||||||
|
L90
|
||||||
|
E2
|
||||||
|
S3
|
||||||
|
R180
|
||||||
|
N3
|
||||||
|
E2
|
||||||
|
R90
|
||||||
|
N5
|
||||||
|
F6
|
||||||
|
N2
|
||||||
|
L90
|
||||||
|
W1
|
||||||
|
R90
|
||||||
|
R90
|
||||||
|
F91
|
||||||
|
E2
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
E3
|
||||||
|
S3
|
||||||
|
L90
|
||||||
|
W3
|
||||||
|
F61
|
||||||
|
S1
|
||||||
|
L90
|
||||||
|
W3
|
||||||
|
N2
|
||||||
|
E1
|
||||||
|
R180
|
||||||
|
E2
|
||||||
|
W5
|
||||||
|
R90
|
||||||
|
F65
|
||||||
|
N4
|
||||||
|
W3
|
||||||
|
F54
|
||||||
|
E1
|
||||||
|
N3
|
||||||
|
E5
|
||||||
|
L180
|
||||||
|
S4
|
||||||
|
N3
|
||||||
|
E5
|
||||||
|
R90
|
||||||
|
S3
|
||||||
|
R90
|
||||||
|
S4
|
||||||
|
W4
|
||||||
|
F31
|
||||||
|
S5
|
||||||
|
R90
|
||||||
|
N2
|
||||||
|
E3
|
||||||
|
F49
|
||||||
|
F47
|
||||||
|
W3
|
||||||
|
F79
|
||||||
|
R270
|
||||||
|
W2
|
||||||
|
F90
|
||||||
|
S3
|
||||||
|
F73
|
||||||
|
L180
|
||||||
|
F14
|
||||||
|
W4
|
||||||
|
F27
|
||||||
|
R90
|
||||||
|
F75
|
||||||
|
L90
|
||||||
|
N5
|
||||||
|
R90
|
||||||
|
N4
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
E2
|
||||||
|
S1
|
||||||
|
W1
|
||||||
|
S4
|
||||||
|
W5
|
||||||
|
W1
|
||||||
|
F7
|
||||||
|
W5
|
||||||
|
L180
|
||||||
|
E1
|
||||||
|
S1
|
||||||
|
F82
|
||||||
|
F36
|
||||||
|
N2
|
||||||
|
L90
|
||||||
|
E1
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
L180
|
||||||
|
N2
|
||||||
|
W3
|
||||||
|
F21
|
||||||
|
R270
|
||||||
|
F18
|
||||||
|
R180
|
||||||
|
F93
|
||||||
|
L90
|
||||||
|
W2
|
||||||
|
F4
|
||||||
|
E1
|
||||||
|
R90
|
||||||
|
E2
|
||||||
|
S3
|
||||||
|
W4
|
||||||
|
F30
|
||||||
|
E1
|
||||||
|
F69
|
||||||
|
W5
|
||||||
|
R90
|
||||||
|
E2
|
||||||
|
L180
|
||||||
|
S4
|
||||||
|
W1
|
||||||
|
N1
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
E3
|
||||||
|
R90
|
||||||
|
F69
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
F13
|
||||||
|
L90
|
||||||
|
E2
|
||||||
|
L90
|
||||||
|
N2
|
||||||
|
W2
|
||||||
|
N5
|
||||||
|
S4
|
||||||
|
F70
|
||||||
|
R90
|
||||||
|
F67
|
||||||
|
E4
|
||||||
|
F62
|
||||||
|
L270
|
||||||
|
F98
|
||||||
|
L90
|
||||||
|
E5
|
||||||
|
F15
|
||||||
|
E5
|
||||||
|
R90
|
||||||
|
W3
|
||||||
|
E2
|
||||||
|
F25
|
||||||
|
R180
|
||||||
|
F7
|
||||||
|
L180
|
||||||
|
W4
|
||||||
|
S3
|
||||||
|
F42
|
||||||
|
R180
|
||||||
|
R270
|
||||||
|
N1
|
||||||
|
R180
|
||||||
|
S2
|
||||||
|
F37
|
||||||
|
E2
|
||||||
|
F72
|
||||||
|
N5
|
||||||
|
W5
|
||||||
|
F61
|
||||||
|
F43
|
||||||
|
W3
|
||||||
|
R90
|
||||||
|
R270
|
||||||
|
N5
|
||||||
|
R270
|
||||||
|
E4
|
||||||
|
L90
|
||||||
|
W4
|
||||||
|
F31
|
||||||
|
F43
|
||||||
|
L180
|
||||||
|
S3
|
||||||
|
W4
|
||||||
|
R90
|
||||||
|
F20
|
||||||
|
E2
|
||||||
|
S5
|
||||||
|
L90
|
||||||
|
F75
|
||||||
|
R90
|
||||||
|
F52
|
||||||
|
W3
|
||||||
|
L90
|
||||||
|
N5
|
||||||
|
W5
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
F52
|
||||||
|
W3
|
||||||
|
F91
|
||||||
|
E1
|
||||||
|
N2
|
||||||
|
F81
|
||||||
|
R90
|
||||||
|
E2
|
||||||
|
L90
|
||||||
|
F24
|
||||||
|
E2
|
||||||
|
L180
|
||||||
|
E1
|
||||||
|
F55
|
||||||
|
E1
|
||||||
|
L90
|
||||||
|
E5
|
||||||
|
R90
|
||||||
|
F23
|
||||||
|
S3
|
||||||
|
R180
|
||||||
|
S3
|
||||||
|
F8
|
||||||
|
L180
|
||||||
|
S1
|
||||||
|
N3
|
||||||
|
F90
|
||||||
|
N5
|
||||||
|
W3
|
||||||
|
N4
|
||||||
|
L90
|
||||||
|
N3
|
||||||
|
W5
|
||||||
|
R90
|
||||||
|
E4
|
||||||
|
S4
|
||||||
|
F89
|
||||||
|
W3
|
||||||
|
N2
|
||||||
|
R90
|
||||||
|
F18
|
||||||
|
R180
|
||||||
|
W5
|
||||||
|
E4
|
||||||
|
F100
|
||||||
|
N4
|
||||||
|
F40
|
||||||
|
E3
|
||||||
|
S2
|
||||||
|
E2
|
||||||
|
F16
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
L180
|
||||||
|
F58
|
||||||
|
W1
|
||||||
|
F70
|
||||||
|
S1
|
||||||
|
R90
|
||||||
|
W3
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
F48
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
N5
|
||||||
|
E3
|
||||||
|
R90
|
||||||
|
E1
|
||||||
|
L90
|
||||||
|
F1
|
||||||
|
R90
|
||||||
|
N1
|
||||||
|
E3
|
||||||
|
F39
|
||||||
|
W3
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
N5
|
||||||
|
R90
|
||||||
|
S3
|
||||||
|
W4
|
||||||
|
R180
|
||||||
|
E1
|
||||||
|
S3
|
||||||
|
F56
|
||||||
|
L90
|
||||||
|
F98
|
||||||
|
N2
|
||||||
|
W4
|
||||||
|
F67
|
||||||
|
R90
|
||||||
|
W3
|
||||||
|
S1
|
||||||
|
F33
|
||||||
|
R90
|
||||||
|
F42
|
||||||
|
L90
|
||||||
|
R90
|
||||||
|
E4
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
F74
|
||||||
|
E4
|
||||||
|
R270
|
||||||
|
F62
|
||||||
|
S5
|
||||||
|
L90
|
||||||
|
E4
|
||||||
|
F21
|
||||||
73
haskellAoC/src/Y2020/Day12.hs
Normal file
73
haskellAoC/src/Y2020/Day12.hs
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
module Y2020.Day12 (y20day12) where
|
||||||
|
|
||||||
|
data Instruction =
|
||||||
|
GoNorth Int |
|
||||||
|
GoSouth Int |
|
||||||
|
GoWest Int |
|
||||||
|
GoEast Int |
|
||||||
|
TurnLeft |
|
||||||
|
TurnRight |
|
||||||
|
TurnAround |
|
||||||
|
Forward Int deriving (Show)
|
||||||
|
|
||||||
|
-- Orientations
|
||||||
|
-- Right = 0
|
||||||
|
-- Bottom = 1
|
||||||
|
-- Left = 2
|
||||||
|
-- Top = 3
|
||||||
|
data State = State {
|
||||||
|
pos :: (Int, Int)
|
||||||
|
, turn :: Int
|
||||||
|
} deriving (Show)
|
||||||
|
|
||||||
|
data StateP2 = StateP2 {
|
||||||
|
shipPos :: (Int, Int)
|
||||||
|
, waypointPos :: (Int, Int)
|
||||||
|
} deriving (Show)
|
||||||
|
|
||||||
|
parseInput :: String -> Instruction
|
||||||
|
parseInput ('N':n) = GoNorth (read n)
|
||||||
|
parseInput ('S':n) = GoSouth (read n)
|
||||||
|
parseInput ('W':n) = GoWest (read n)
|
||||||
|
parseInput ('E':n) = GoEast (read n)
|
||||||
|
parseInput ('F':n) = Forward (read n)
|
||||||
|
parseInput "L90" = TurnLeft
|
||||||
|
parseInput "L270" = TurnRight
|
||||||
|
parseInput "R90" = TurnRight
|
||||||
|
parseInput "R270" = TurnLeft
|
||||||
|
parseInput (_:"180") = TurnAround
|
||||||
|
parseInput _ = error "Wrong instruction"
|
||||||
|
|
||||||
|
applyInstruction :: State -> Instruction -> State
|
||||||
|
applyInstruction (State (x, y) t) (GoNorth n) = State (x, y + n) t
|
||||||
|
applyInstruction (State (x, y) t) (GoSouth n) = State (x, y -n) t
|
||||||
|
applyInstruction (State (x, y) t) (GoWest n) = State (x - n, y) t
|
||||||
|
applyInstruction (State (x, y) t) (GoEast n) = State (x + n, y) t
|
||||||
|
applyInstruction (State p t) TurnRight = State p $ (t + 1) `mod` 4
|
||||||
|
applyInstruction (State p t) TurnAround = State p $ (t + 2) `mod` 4
|
||||||
|
applyInstruction (State p t) TurnLeft = State p $ (t + 3) `mod` 4
|
||||||
|
applyInstruction (State (x, y) t) (Forward n) = State (moveForward t) t
|
||||||
|
where moveForward 0 = (x + n, y)
|
||||||
|
moveForward 1 = (x, y - n)
|
||||||
|
moveForward 2 = (x - n, y)
|
||||||
|
moveForward 3 = (x, y + n)
|
||||||
|
|
||||||
|
applyInstructionP2 :: StateP2 -> Instruction -> StateP2
|
||||||
|
applyInstructionP2 (StateP2 sp (x, y)) (GoNorth n) = StateP2 sp (x, y + n)
|
||||||
|
applyInstructionP2 (StateP2 sp (x, y)) (GoSouth n) = StateP2 sp (x, y - n)
|
||||||
|
applyInstructionP2 (StateP2 sp (x, y)) (GoWest n) = StateP2 sp (x - n, y)
|
||||||
|
applyInstructionP2 (StateP2 sp (x, y)) (GoEast n) = StateP2 sp (x + n, y)
|
||||||
|
applyInstructionP2 (StateP2 sp (x, y)) TurnLeft = StateP2 sp (-y, x)
|
||||||
|
applyInstructionP2 (StateP2 sp (x, y)) TurnRight = StateP2 sp (y, -x)
|
||||||
|
applyInstructionP2 (StateP2 sp (x, y)) TurnAround = StateP2 sp (-x, -y)
|
||||||
|
applyInstructionP2 (StateP2 (x, y) wp@(x', y')) (Forward n) = StateP2 (x + (n * x'), y + (n * y')) wp
|
||||||
|
|
||||||
|
y20day12 :: [String] -> (String, String)
|
||||||
|
y20day12 input = (part1, part2)
|
||||||
|
where part1 = show $ sum $ map abs $ [fst endposP1, snd endposP1]
|
||||||
|
part2 = show $ sum $ map abs $ [fst endposP2, snd endposP2]
|
||||||
|
start = State (0, 0) 0
|
||||||
|
startP2 = StateP2 (0, 0) (10, 1)
|
||||||
|
journey = map parseInput input
|
||||||
|
(State endposP1 _) = foldl applyInstruction start journey
|
||||||
|
(StateP2 endposP2 _) = foldl applyInstructionP2 startP2 journey
|
||||||
@@ -11,6 +11,7 @@ import Y2020.Day08
|
|||||||
import Y2020.Day09
|
import Y2020.Day09
|
||||||
import Y2020.Day10
|
import Y2020.Day10
|
||||||
import Y2020.Day11
|
import Y2020.Day11
|
||||||
|
import Y2020.Day12
|
||||||
|
|
||||||
year2020 :: String -> [String] -> (String, String)
|
year2020 :: String -> [String] -> (String, String)
|
||||||
year2020 "01" = y20day01
|
year2020 "01" = y20day01
|
||||||
@@ -24,3 +25,4 @@ year2020 "08" = y20day08
|
|||||||
year2020 "09" = y20day09
|
year2020 "09" = y20day09
|
||||||
year2020 "10" = y20day10
|
year2020 "10" = y20day10
|
||||||
year2020 "11" = y20day11
|
year2020 "11" = y20day11
|
||||||
|
year2020 "12" = y20day12
|
||||||
|
|||||||
Reference in New Issue
Block a user