add day 6

master
Clyne 2 years ago
parent f89c980176
commit 9be1e181be

@ -0,0 +1,10 @@
(defn find-marker [data n]
(->> data
(partition n 1)
(map #(apply distinct? %))
(take-while false?)
(#(+ n (count %)))))
(let [data (slurp "input")]
(doseq [ind [4 14]]
(println (find-marker data ind))))

@ -0,0 +1,61 @@
REM Advent of Code 2022: Day 6, part 1
REM Written in Applesoft BASIC
5 HOME
10 A = 1000
20 R = 0
50 PRINT CHR$ (4),"OPEN INPUT"
60 PRINT CHR$ (4),"READ INPUT"
70 ONERR GOTO 900
100 PRINT "INITIALIZING COMMUNICATION SYSTEM";
105 A = 350
110 FOR I = 0 TO 6
120 GOSUB 1000
130 PRINT ".";
140 NEXT I
150 PRINT
200 PRINT "OPENING SIGNAL DATASTREAM";
210 FOR I = 0 TO 6
220 GOSUB 1000
230 PRINT ".";
240 NEXT I
250 PRINT
260 PRINT
300 PRINT "SCANNING FOR START-OF-PACKET MARKER:"
310 HTAB 1
320 VTAB 8
330 PRINT "||||";
340 HTAB 1
350 VTAB 10
360 PRINT "||||";
400 HTAB 1
410 VTAB 9
420 PRINT S$;
430 IF LEN (S$) > = 4 GOTO 500
440 GET C$
450 S$ = C$ + S$
455 IF LEN (S$) > 40 THEN S$ = MID$ (S$,1,40)
460 A = 80
470 GOSUB 1000
475 R = R + 1
480 GOTO 400
500 HTAB 1
510 VTAB 7
530 IF MID$ (S$,1,1) = MID$ (S$,2,1) THEN PRINT "/\ ";: GOTO 600
540 IF MID$ (S$,1,1) = MID$ (S$,3,1) THEN PRINT "/-\ ";: GOTO 600
550 IF MID$ (S$,1,1) = MID$ (S$,4,1) THEN PRINT "/--\";: GOTO 600
560 IF MID$ (S$,2,1) = MID$ (S$,3,1) THEN PRINT " /\ ";: GOTO 600
570 IF MID$ (S$,2,1) = MID$ (S$,4,1) THEN PRINT " /-\";: GOTO 600
580 IF MID$ (S$,3,1) = MID$ (S$,4,1) THEN PRINT " /\";: GOTO 600
590 PRINT " ";
595 GOTO 700
600 GOTO 440
620 VTAB 14
700 HTAB 1
710 VTAB 13
720 PRINT "MARKER FOUND AT INDEX ";R;"."
900 PRINT CHR$ (4),"CLOSE"
910 END
1000 FOR Z = 0 TO A: NEXT Z
1010 RETURN
Loading…
Cancel
Save