day 2 init
This commit is contained in:
6
2021/day02/EXAMPLE.txt
Normal file
6
2021/day02/EXAMPLE.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
forward 5
|
||||||
|
down 5
|
||||||
|
forward 8
|
||||||
|
up 3
|
||||||
|
down 8
|
||||||
|
forward 2
|
1000
2021/day02/INPUT.txt
Normal file
1000
2021/day02/INPUT.txt
Normal file
File diff suppressed because it is too large
Load Diff
54
2021/day02/Makefile
Normal file
54
2021/day02/Makefile
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# AOC daily Makefile - GNU make only.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2021 Bruno Raoult ("br")
|
||||||
|
# Licensed under the GNU General Public License v3.0 or later.
|
||||||
|
# Some rights reserved. See COPYING.
|
||||||
|
# * You should have received a copy of the GNU General Public License along with this
|
||||||
|
# program. If not, see <https://www.gnu.org/licenses/gpl-3.0-standalone.htmlL>.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later <https://spdx.org/licenses/GPL-3.0-or-later.html>
|
||||||
|
#
|
||||||
|
|
||||||
|
INPUT := INPUT.txt
|
||||||
|
SHELL := /bin/bash
|
||||||
|
|
||||||
|
CC := gcc
|
||||||
|
|
||||||
|
LIB := aoc_$(shell uname -m)
|
||||||
|
INCDIR := ../include
|
||||||
|
LIBDIR := ../lib
|
||||||
|
LDFLAGS := -L$(LIBDIR)
|
||||||
|
LDLIB := -l$(LIB)
|
||||||
|
|
||||||
|
export LD_LIBRARY_PATH = $(LIBDIR)
|
||||||
|
|
||||||
|
CFLAGS += -std=gnu99
|
||||||
|
CFLAGS += -O2
|
||||||
|
CFLAGS += -g
|
||||||
|
CFLAGS += -Wall
|
||||||
|
CFLAGS += -Wextra
|
||||||
|
CFLAGS += -march=native
|
||||||
|
|
||||||
|
CFLAGS += -DDEBUG_POOL # memory pools management
|
||||||
|
|
||||||
|
TIME := \time -f "\ttime: %E real, %U user, %S sys\n\tcontext-switch:\t%c+%w, page-faults: %F+%R\n"
|
||||||
|
export PATH := .:$(PATH)
|
||||||
|
|
||||||
|
.PHONY: clean all compile deploy ex1 ex2
|
||||||
|
|
||||||
|
all: ex1 ex2
|
||||||
|
|
||||||
|
compile: aoc-c
|
||||||
|
|
||||||
|
ex1: aoc-c
|
||||||
|
@$(TIME) aoc-c -d 5 -p 1 < $(INPUT)
|
||||||
|
|
||||||
|
ex2: aoc-c
|
||||||
|
@$(TIME) aoc-c -d 5 -p 2 < $(INPUT)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -f aoc-c core*
|
||||||
|
|
||||||
|
.c:
|
||||||
|
@echo compiling $<
|
||||||
|
@$(CC) $(CFLAGS) $(LDFLAGS) -I $(INCDIR) $< $(LDLIB) -o $@
|
39
2021/day02/README.txt
Normal file
39
2021/day02/README.txt
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
--- Day 2: Dive! ---
|
||||||
|
|
||||||
|
Now, you need to figure out how to pilot this thing.
|
||||||
|
|
||||||
|
It seems like the submarine can take a series of commands like forward 1, down 2, or up 3:
|
||||||
|
|
||||||
|
forward X increases the horizontal position by X units.
|
||||||
|
down X increases the depth by X units.
|
||||||
|
up X decreases the depth by X units.
|
||||||
|
|
||||||
|
Note that since you're on a submarine, down and up affect your depth, and so they have the opposite result of what you might expect.
|
||||||
|
|
||||||
|
The submarine seems to already have a planned course (your puzzle input). You should probably figure out where it's going. For example:
|
||||||
|
|
||||||
|
forward 5
|
||||||
|
down 5
|
||||||
|
forward 8
|
||||||
|
up 3
|
||||||
|
down 8
|
||||||
|
forward 2
|
||||||
|
|
||||||
|
Your horizontal position and depth both start at 0. The steps above would then modify them as follows:
|
||||||
|
|
||||||
|
forward 5 adds 5 to your horizontal position, a total of 5.
|
||||||
|
down 5 adds 5 to your depth, resulting in a value of 5.
|
||||||
|
forward 8 adds 8 to your horizontal position, a total of 13.
|
||||||
|
up 3 decreases your depth by 3, resulting in a value of 2.
|
||||||
|
down 8 adds 8 to your depth, resulting in a value of 10.
|
||||||
|
forward 2 adds 2 to your horizontal position, a total of 15.
|
||||||
|
|
||||||
|
After following these instructions, you would have a horizontal position of 15 and a depth of 10. (Multiplying these together produces 150.)
|
||||||
|
|
||||||
|
Calculate the horizontal position and depth you would have after following the planned course. What do you get if you multiply your final horizontal position by your final depth?
|
||||||
|
|
||||||
|
To begin, get your puzzle input.
|
||||||
|
|
||||||
|
Answer:
|
||||||
|
|
||||||
|
You can also [Shareon Mastodon] this puzzle.
|
Reference in New Issue
Block a user