Compare commits
6 commits
dd0565fd12
...
49525e43a1
Author | SHA1 | Date | |
---|---|---|---|
49525e43a1 | |||
d84f361577 | |||
1ee2d1b1e9 | |||
9e9d13c45d | |||
b0882a899e | |||
d405c43683 |
2 changed files with 17 additions and 7 deletions
|
@ -28,7 +28,6 @@ modules = Runner
|
|||
, Util
|
||||
, Util.Eff
|
||||
, Util.Digits
|
||||
, Grid
|
||||
|
||||
-- main file (i.e. file to load at REPL)
|
||||
main = Main
|
||||
|
|
|
@ -183,8 +183,8 @@ containsPairs xs = length (nub $ pairs (reverse xs) []) >= 2
|
|||
Combine our password criteria into one function
|
||||
|
||||
```idris
|
||||
part1Critera : Vect n PasswordChar -> Bool
|
||||
part1Critera xs = incrimentingChars xs && noInvalidChars xs && containsPairs xs
|
||||
passwordCriteria : Vect n PasswordChar -> Bool
|
||||
passwordCriteria xs = incrimentingChars xs && noInvalidChars xs && containsPairs xs
|
||||
```
|
||||
|
||||
### Find the next password
|
||||
|
@ -207,19 +207,30 @@ findNextPassword f password =
|
|||
### Part 1
|
||||
|
||||
```idris
|
||||
part1 : Eff (PartEff String) (String, ())
|
||||
part1 : Eff (PartEff String) (String, Password)
|
||||
part1 = do
|
||||
input <- map trim $ askAt "input"
|
||||
password <- parsePassword input
|
||||
info "Starting password: \{show password} -> \{passwordToString password}"
|
||||
let next_password = findNextPassword part1Critera password
|
||||
pure (passwordToString next_password, ())
|
||||
let next_password = findNextPassword passwordCriteria password
|
||||
pure (passwordToString next_password, next_password)
|
||||
```
|
||||
|
||||
### Part 2
|
||||
|
||||
```idris
|
||||
part2 : Password -> Eff (PartEff String) String
|
||||
part2 password = do
|
||||
info
|
||||
"Second starting password: \{show password} -> \{passwordToString password}"
|
||||
let next_password = findNextPassword passwordCriteria password
|
||||
pure $ passwordToString next_password
|
||||
```
|
||||
|
||||
<!-- idris
|
||||
public export
|
||||
day11 : Day
|
||||
day11 = First 11 part1
|
||||
day11 = Both 11 part1 part2
|
||||
-->
|
||||
|
||||
## References
|
||||
|
|
Loading…
Add table
Reference in a new issue