Skip to content

Chore: update day 11 and 14 input #50

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jan 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/2024/2024-12-06/main.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { guardController } from './lib/guardController.js'
import { findObstructionPositions } from './lib/guardControllerLoop.js'

const input = readAOCInputFile({
filePath: file(import.meta.url, 'input.txt'),
type: AOC_OUTPUT_TYPE.STRING_ARRAY_2D
type: AOCOutputType.STRING_ARRAY_2D
}) as string [][]

/**
Expand Down
4 changes: 2 additions & 2 deletions src/2024/2024-12-06/sample.test.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { test, expect } from 'vitest'

import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { guardController } from './lib/guardController.js'
import { findObstructionPositions } from './lib/guardControllerLoop.js'

const input = readAOCInputFile({
filePath: file(import.meta.url, 'input.txt'),
type: AOC_OUTPUT_TYPE.STRING_ARRAY_2D
type: AOCOutputType.STRING_ARRAY_2D
}) as string [][]

test('Count distinct guard positions', () => {
Expand Down
4 changes: 2 additions & 2 deletions src/2024/2024-12-07/main.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { totalCalibrationResult } from './lib/totalCalibration.js'
Expand All @@ -7,7 +7,7 @@ import { totalCalibrationConcat } from './lib/totalCalibrationConcat.js'
// Read and process the input file
const input = (readAOCInputFile({
filePath: file(import.meta.url, 'input.txt'),
type: AOC_OUTPUT_TYPE.STRING
type: AOCOutputType.STRING
}) as string)
.split('\n')

Expand Down
4 changes: 2 additions & 2 deletions src/2024/2024-12-07/sample.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { test, expect } from 'vitest'

import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { totalCalibrationResult } from './lib/totalCalibration.js'
Expand All @@ -9,7 +9,7 @@ import { totalCalibrationConcat } from './lib/totalCalibrationConcat.js'
// Read and process the input file
const input = (readAOCInputFile({
filePath: file(import.meta.url, 'input.txt'),
type: AOC_OUTPUT_TYPE.STRING
type: AOCOutputType.STRING
}) as string)
.split('\n')

Expand Down
4 changes: 2 additions & 2 deletions src/2024/2024-12-08/main.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { countAntinodes } from './lib/uniqueAntinodes.js'
import { countAllAntinodes } from './lib/allAntinodes.js'

const input = readAOCInputFile({
filePath: file(import.meta.url, 'input.txt'),
type: AOC_OUTPUT_TYPE.STRING_ARRAY_2D
type: AOCOutputType.STRING_ARRAY_2D
}) as string[][]

/**
Expand Down
4 changes: 2 additions & 2 deletions src/2024/2024-12-08/sample.test.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { test, expect } from 'vitest'

import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { countAntinodes } from './lib/uniqueAntinodes.js'
import { countAllAntinodes } from './lib/allAntinodes.js'

const input = readAOCInputFile({
filePath: file(import.meta.url, 'input.txt'),
type: AOC_OUTPUT_TYPE.STRING_ARRAY_2D
type: AOCOutputType.STRING_ARRAY_2D
}) as string[][]

test('Antinodes in unique locations', () => {
Expand Down
4 changes: 2 additions & 2 deletions src/2024/2024-12-09/main.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { CompactDisk } from './lib/compact.js'
import { WholeDisk } from './lib/whole.js'

const input = readAOCInputFile({
filePath: file(import.meta.url, 'input.txt'),
type: AOC_OUTPUT_TYPE.STRING
type: AOCOutputType.STRING
}) as string

/**
Expand Down
4 changes: 2 additions & 2 deletions src/2024/2024-12-09/sample.test.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { test, expect } from 'vitest'

import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { CompactDisk } from './lib/compact.js'
import { WholeDisk } from './lib/whole.js'

const input = readAOCInputFile({
filePath: file(import.meta.url, 'input.txt'),
type: AOC_OUTPUT_TYPE.STRING
type: AOCOutputType.STRING
}) as string

test('Defragmented disk checksum', () => {
Expand Down
4 changes: 2 additions & 2 deletions src/2024/2024-12-10/main.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@

import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { countTrailScores } from './lib/scoresRatings.js'

const input = readAOCInputFile({
filePath: file(import.meta.url, 'input.txt'),
type: AOC_OUTPUT_TYPE.NUMBER_ARRAY_2D
type: AOCOutputType.NUMBER_ARRAY_2D
}) as number[][]

/**
Expand Down
4 changes: 2 additions & 2 deletions src/2024/2024-12-10/sample.test.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { test, expect } from 'vitest'

import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { countTrailScores } from './lib/scoresRatings.js'

const input = readAOCInputFile({
filePath: file(import.meta.url, 'input.txt'),
type: AOC_OUTPUT_TYPE.NUMBER_ARRAY_2D
type: AOCOutputType.NUMBER_ARRAY_2D
}) as number[][]

test('Total trailhead score:', () => {
Expand Down
5 changes: 5 additions & 0 deletions src/2024/2024-12-11/input.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// Quiz input random data.
// Replace the input value with other values for testing

export const inputSample: string = '125 17'
export const inputQuiz: string = '2 34576 0 740884 60 103 1721 7405157'
26 changes: 21 additions & 5 deletions src/2024/2024-12-11/main.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,33 @@
import { Blinker } from './lib/blink.js'
import { inputSample, inputQuiz } from './input.js'

/**
* Part 1/2 and 2/2 of the 2024-12-10 quiz
* Counts the number of visible stones after blinking
* Part 1/2 of the 2024-12-10 quiz
* Counts the number of visible stones after blinkingc 25x
*/
const quiz20241211 = () => {
const quiz20241211_01 = () => {
const numBlinks = 25
const blinker = new Blinker()

const stones = '125 17'.split(' ').map(Number)
const stones = inputSample.split(' ').map(Number)
const count = blinker.blink(stones, numBlinks)

console.log(`${count} stones available after ${numBlinks} blinks`)
}

quiz20241211()
/**
* Part 2/2 and 2/2 of the 2024-12-10 quiz
* Counts the number of visible stones after blinking 75x
*/
const quiz20241211_02 = () => {
const numBlinks = 75
const blinker = new Blinker()

const stones = inputQuiz.split(' ').map(Number)
const count = blinker.blink(stones, numBlinks)

console.log(`${count} stones available after ${numBlinks} blinks`)
}

quiz20241211_01()
quiz20241211_02()
12 changes: 10 additions & 2 deletions src/2024/2024-12-11/sample.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
import { test, expect } from 'vitest'
import { Blinker } from './lib/blink.js'
import { inputSample, inputQuiz } from './input.js'

test('Number of stones after blinking:', () => {
const stones = '125 17'.split(' ').map(Number)
test('Number of stones after blinking 25x:', () => {
const stones = inputSample.split(' ').map(Number)
const blinker = new Blinker()

expect(blinker.blink(stones, 25)).toBe(55312)
})

test('Number of stones after blinking 75x:', () => {
const stones = inputQuiz.split(' ').map(Number)
const blinker = new Blinker()

expect(blinker.blink(stones, 75)).toBe(246353780086424)
})
4 changes: 2 additions & 2 deletions src/2024/2024-12-12/main.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { Garden } from './lib/garden.js'
import { WholesaleGarden } from './lib/wholesale.js'

const input = readAOCInputFile({
filePath: file(import.meta.url, 'input.txt'),
type: AOC_OUTPUT_TYPE.STRING_ARRAY_2D
type: AOCOutputType.STRING_ARRAY_2D
}) as string[][]

/**
Expand Down
4 changes: 2 additions & 2 deletions src/2024/2024-12-12/sample.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { test, expect } from 'vitest'
import { AOC_OUTPUT_TYPE, readAOCInputFileAsync } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFileAsync } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

import { Garden } from './lib/garden.js'
Expand All @@ -19,7 +19,7 @@ const files: Promise<string[][]>[] = []
for (let i = 0; i < inputFiles.length; i += 1) {
files.push(readAOCInputFileAsync({
filePath: file(import.meta.url, inputFiles[i] as string),
type: AOC_OUTPUT_TYPE.STRING_ARRAY_2D
type: AOCOutputType.STRING_ARRAY_2D
}))
}

Expand Down
4 changes: 2 additions & 2 deletions src/2024/2024-12-13/lib/fileReader.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MatrixData } from './types.js'

import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

/**
Expand All @@ -11,7 +11,7 @@ import { file } from '@/aoc/file/utils.js'
export const fileReader = (fileName: string): MatrixData<number[]> => {
const input = readAOCInputFile({
filePath: file(import.meta.url, fileName),
type: AOC_OUTPUT_TYPE.STRING
type: AOCOutputType.STRING
}) as string

return input
Expand Down
File renamed without changes.
4 changes: 2 additions & 2 deletions src/2024/2024-12-14/lib/fileReader.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { RobotProperty } from './types.js'

import { AOC_OUTPUT_TYPE, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { AOCOutputType, readAOCInputFile } from '@/aoc/file/aocfile.js'
import { file } from '@/aoc/file/utils.js'

/**
Expand All @@ -11,7 +11,7 @@ import { file } from '@/aoc/file/utils.js'
export const fileReader = (fileName: string): RobotProperty[] => {
const input = readAOCInputFile({
filePath: file(import.meta.url, fileName),
type: AOC_OUTPUT_TYPE.STRING
type: AOCOutputType.STRING
}) as string

return input
Expand Down
29 changes: 16 additions & 13 deletions src/2024/2024-12-14/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,20 @@ import { fileReader } from './lib/fileReader.js'
import { calculateSafetyFactor } from './lib/safetyFactor.js'
import { findEasterEgg } from './lib/findEasterEgg.js'

const dataSample = fileReader('../input_sample.txt')
const dataQuiz = fileReader('../input.txt')

// Grid dimensions for the sample input
const gridSample = { length: 7, width: 11 }

// Grid dimensions for the randomized quiz input
const gridQuiz = { length: 103, width: 101 }

/**
* Part 1/2 of the 2024-12-14 quiz
* Counts the safety factor from robots after N seconds
*/
const quiz20241214_01 = () => {
// Grid dimensions for the randomized quiz input
const gridSettings = { length: 7, width: 11 }

// Sample data. Replace with AoC quiz data.
const dataInput = fileReader('../input1.txt')

const safetyFactor = calculateSafetyFactor({
data: dataSample,
gridMeta: gridSample,
data: dataInput,
gridMeta: gridSettings,
seconds: 100,
log: true
})
Expand All @@ -31,9 +28,15 @@ const quiz20241214_01 = () => {
* Counts the no. of seconds before robots display the easter egg
*/
const quiz20241214_02 = () => {
// Grid dimensions for the randomized quiz input
const gridSettings = { length: 103, width: 101 }

// Random AoC auiz data
const dataInput = fileReader('../input.txt')

const seconds = findEasterEgg({
data: dataQuiz,
gridMeta: gridQuiz,
data: dataInput,
gridMeta: gridSettings,
seconds: 10000
// Uncomment to print the xmas tree
// log: true
Expand Down
27 changes: 15 additions & 12 deletions src/2024/2024-12-14/sample.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,32 @@ import { fileReader } from './lib/fileReader.js'
import { calculateSafetyFactor } from './lib/safetyFactor.js'
import { findEasterEgg } from './lib/findEasterEgg.js'

const dataSample = fileReader('../input_sample.txt')
const dataQuiz = fileReader('../input.txt')

// Grid dimensions for the sample input
const gridSample = { length: 7, width: 11 }
test('Safety factor:', () => {
// Grid dimensions for the randomized quiz input
const gridSettings = { length: 7, width: 11 }

// Grid dimensions for the randomized quiz input
const gridQuiz = { length: 103, width: 101 }
// Sample data. Replace with AoC quiz data.
const dataInput = fileReader('../input1.txt')

test('Safety factor:', () => {
const safetyFactor = calculateSafetyFactor({
data: dataSample,
gridMeta: gridSample,
data: dataInput,
gridMeta: gridSettings,
seconds: 100
})

expect(safetyFactor).toBe(10)
})

test('Easter egg iteration no. (seconds):', () => {
// Grid dimensions for the randomized quiz input
const gridSettings = { length: 103, width: 101 }

// Random AoC auiz data
const dataInput = fileReader('../input.txt')

const seconds = findEasterEgg({
data: dataQuiz,
gridMeta: gridQuiz,
data: dataInput,
gridMeta: gridSettings,
seconds: 10000
})

Expand Down
Loading
Loading