Initial commit
This commit is contained in:
commit
f242d2b0df
420 changed files with 62521 additions and 0 deletions
34
2019/day02/day02.rkt
Normal file
34
2019/day02/day02.rkt
Normal file
|
@ -0,0 +1,34 @@
|
|||
#lang racket/base
|
||||
|
||||
(require "../intcode.rkt"
|
||||
racket/vector)
|
||||
|
||||
(module+ test
|
||||
(require rackunit))
|
||||
|
||||
(define (part1 filename)
|
||||
(define program (parse-file filename))
|
||||
(vector-set! program 1 12)
|
||||
(vector-set! program 2 2)
|
||||
(define vm (execute (start-machine program '())))
|
||||
(vector-ref (machine-program vm) 0))
|
||||
|
||||
(module+ test
|
||||
(check-equal? (part1 "input.txt") 6627023))
|
||||
|
||||
(define (try-inputs program noun verb)
|
||||
(define my-program (vector-copy program))
|
||||
(vector-set! my-program 1 noun)
|
||||
(vector-set! my-program 2 verb)
|
||||
(define vm (execute (start-machine my-program '())))
|
||||
(vector-ref (machine-program vm) 0))
|
||||
|
||||
(define (part2 filename)
|
||||
(define program (parse-file filename))
|
||||
(for*/first ([noun (in-range 100)]
|
||||
[verb (in-range 100)]
|
||||
#:when (eq? 19690720 (try-inputs program noun verb)))
|
||||
(+ (* 100 noun) verb)))
|
||||
|
||||
(module+ test
|
||||
(check-equal? (part2 "input.txt") 4019))
|
Loading…
Add table
Add a link
Reference in a new issue