aboutsummaryrefslogtreecommitdiff
path: root/aoc2015/day-01/day-01.rkt
blob: efbd02a8572ed0eb2ac8def30f830b7d8479bc53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#lang racket
(require "../../jj-aoc.rkt")

;; part 1
(for/fold ([current-floor 0]) ([l (in-input-port-chars (open-day 1 2015))] [i (in-naturals)])
  (match l
    [#\( (add1 current-floor)]
    [#\) (sub1 current-floor)]))

;; part 2
(for/fold ([current-floor 0] [last-index 0] #:result (add1 last-index))
          ([l (in-input-port-chars (open-day 1 2015))] [i (in-naturals)])
  #:break (= current-floor -1)
  (match l
    [#\( (values (add1 current-floor) i)]
    [#\) (values (sub1 current-floor) i)]))