clean up answer
This commit is contained in:
parent
09a3b8a955
commit
ed1870640c
12
day1.retro
12
day1.retro
|
@ -16,7 +16,10 @@ Prev is defined as being 9999, larger than any of the values in the file, so the
|
|||
then loop through the file counting up. Retro has a nice word, for-each-line, that does the looping.
|
||||
|
||||
~~~
|
||||
'input1 [ s:to-number dup @prev gt? [ &count v:inc ] if !prev &lines v:inc ] file:for-each-line
|
||||
'input1 [ s:to-number dup
|
||||
@prev gt? [ &count v:inc ] if
|
||||
!prev
|
||||
&lines v:inc ] file:for-each-line
|
||||
|
||||
@count n:put ASCII:LF c:put
|
||||
~~~
|
||||
|
@ -33,15 +36,14 @@ part 2 is a bit harder as we can't just iterate through the file like part 1 as
|
|||
|
||||
then, for each line in the file, we need to read that line and the next 2 lines, then seek back to the line straight after it. The only way I could think to do this is counting the amount of bytes we seek forward (using the length of the lines read) and then seeking that many bytes back, which is a bit of a pain. This is a terrible solution. This loop reads the 3 lines out of the file, adds up the values, and then uses the same logic as part 1 to find upwards changes from the previous window.
|
||||
|
||||
I'm not happy with this solution, but it works. Retro users, help me get better!
|
||||
|
||||
I'm not happy with this solution, but it works. Retro users, help me get better!
|
||||
~~~
|
||||
'seek-to var
|
||||
|
||||
@lines #2 - [
|
||||
@f file:read-line dup s:length #1 + &seek-to v:inc-by s:to-number
|
||||
@f file:read-line s:to-number
|
||||
@f file:read-line s:to-number + +
|
||||
#02 [ @f file:read-line s:to-number ] times
|
||||
+ +
|
||||
dup @prev gt? [ &count v:inc ] if !prev
|
||||
@seek-to @f file:seek ] times
|
||||
|
||||
|
|
Loading…
Reference in New Issue