Quest 4: Teeth of the Wind

  • Keep top level comments as only solutions, if you want to say something other than a solution put it in a new post. (replies to comments can be whatever)
  • You can send code in code blocks by using three backticks, the code, and then three backticks or use something such as https://topaz.github.io/paste/ if you prefer sending it through a URL

Link to participate: https://everybody.codes/

  • vole@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    15 days ago

    maaath

    Scheme/Guile

    (import (rnrs io ports (6)))
    
    (define (parse-file file-name)
           (map string->number (string-split (call-with-input-file file-name get-string-all) #\newline)))
    
    (let* ((gears (parse-file "notes/everybody_codes_e2025_q04_p1.txt")))
      (format #t "P1 Answer: ~a\n\n" (* 2025 (/ (car gears) (car (last-pair gears))))))
    
    
    (let* ((gears (parse-file "notes/everybody_codes_e2025_q04_p2.txt")))
      (format #t "P2 Answer: ~a\n\n" (ceiling (* 10000000000000 (/ (car (last-pair gears)) (car gears))))))
    
    
    (define (parse-file-p3 file-name)
           (map
                  (lambda (line) (map string->number(string-split line #\|)))
                  (string-split (call-with-input-file file-name get-string-all) #\newline)))
    (let* ((gears (parse-file-p3 "notes/everybody_codes_e2025_q04_p3.txt")))
      (format #t "P2 Answer: ~a\n\n"
              (floor (* 100
                 (apply * (map (lambda (gear) (if (= 1 (length gear)) 1 (/ (cadr gear) (car gear)))) gears))
                 (/ (caar gears) (caar (last-pair gears)))))))