Compare commits
No commits in common. "ab90e9c21959edc3a5bd4d94740898b45ca30dc0" and "f826f2b2d3b9350951c409e485f600090d8aa76e" have entirely different histories.
ab90e9c219
...
f826f2b2d3
|
@ -78,8 +78,6 @@
|
||||||
] ++ (with pkgs; [
|
] ++ (with pkgs; [
|
||||||
# Scripts
|
# Scripts
|
||||||
clean
|
clean
|
||||||
|
|
||||||
go
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
res := canVisitAllRooms([][]int{{1}, {2}, {}})
|
|
||||||
fmt.Printf("%+v\n", res)
|
|
||||||
}
|
|
||||||
|
|
||||||
func canVisitAllRooms(rooms [][]int) bool {
|
|
||||||
if len(rooms) > 0 && len(rooms[0]) == 0 {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
keys := getAllKeys(0, make(map[int]struct{}), rooms)
|
|
||||||
keys[0] = struct{}{}
|
|
||||||
|
|
||||||
for i := 0; i < len(rooms); i++ {
|
|
||||||
if _, ok := keys[i]; !ok {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func getAllKeys(index int, seen map[int]struct{}, rooms [][]int) map[int]struct{} {
|
|
||||||
keys := map[int]struct{}{}
|
|
||||||
|
|
||||||
for j := 0; j < len(rooms[index]); j++ {
|
|
||||||
if _, ok := keys[rooms[index][j]]; ok {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
keys[rooms[index][j]] = struct{}{}
|
|
||||||
insideKeys := getAllKeys(j, keys, rooms)
|
|
||||||
for k := range insideKeys {
|
|
||||||
keys[k] = struct{}{}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return keys
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{-
|
|
||||||
n! means n x (n - 1) x ... x 3 x 2 x 1.
|
|
||||||
For example, 10! = 10 x 9 x ... x 3 x 2 x 1 = 3628800,
|
|
||||||
and the sum of the digits in the number 10! is 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27.
|
|
||||||
Find the sum of the digits in the number 100!.
|
|
||||||
-}
|
|
||||||
|
|
||||||
import Data.Char (digitToInt)
|
|
||||||
|
|
||||||
read' :: Integer -> String
|
|
||||||
read' = show
|
|
||||||
|
|
||||||
main :: IO ()
|
|
||||||
main = do
|
|
||||||
print $ "Answer: " <> show ans
|
|
||||||
|
|
||||||
ans :: Int
|
|
||||||
ans = sum $ map digitToInt $ read' $ product [1..100]
|
|
Loading…
Reference in New Issue