Skip to content

Instantly share code, notes, and snippets.

@kevincharm
kevincharm / day20.js
Last active December 21, 2017 01:07
The shenanigans continue...
// -*- node.jz -*-
let input = ''
process.stdin.on('readable', () => input += process.stdin.read() || '')
process.stdin.on('end', () => main())
function main() {
const particles = parse(input)
const idx = closestToOrigin(particles)
console.log(`Closest to origin: ${idx}`)
@kevincharm
kevincharm / day19.js
Last active December 19, 2017 14:39
?_?
// -*- node.jz -*-
let input = ''
process.stdin.on('readable', () => input += process.stdin.read() || '')
process.stdin.on('end', () => main())
function main() {
const graph = parse(input)
resolve(graph)
const { acc, steps } = traverse(graph)
// -*- node.jz -*-
let input = ''
process.stdin.on('readable', () => input += process.stdin.read() || '')
process.stdin.on('end', () => main())
const EventEmitter = require('events')
class Program extends EventEmitter {
constructor(id) {
@kevincharm
kevincharm / day18.part1.js
Last active December 18, 2017 13:56
what a doozy
// -*- node.jz -*-
let input = ''
process.stdin.on('readable', () => input += process.stdin.read() || '')
process.stdin.on('end', () => main())
const EventEmitter = require('events')
class Program extends EventEmitter {
constructor(id) {
@kevincharm
kevincharm / day17.js
Last active December 17, 2017 06:22
rank 329/700
// -*- node.jz -*-
let input = ''
process.stdin.on('readable', () => input += process.stdin.read() || '')
process.stdin.on('end', () => main())
function part1(steps) {
const buf = [0]
let pos = 0
for (let i=1; i<=2017; i++) {
// -*- node.jz -*-
let input = ''
process.stdin.on('readable', () => input += process.stdin.read() || '')
process.stdin.on('end', () => main())
const spin = (programs, size) => {
while (size--) programs.unshift(programs.pop())
}
@kevincharm
kevincharm / day15.c
Created December 15, 2017 13:39
aoc17
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
int64_t judge_one(int64_t a, int64_t b) {
const int pairs = 40000000;
int64_t total = 0;
for (int i=0; i<pairs; i++) {
a = (a * 16807) % INT32_MAX;
b = (b * 48271) % INT32_MAX;
@kevincharm
kevincharm / day14.js
Created December 14, 2017 16:38
bloody long
// -*- node.jz -*-
let input = ''
process.stdin.on('readable', () => input += process.stdin.read() || '')
process.stdin.on('end', () => main())
function leftpad(str, char = 0, len = 2) {
let res = str.slice()
if (str.length < len) {
const pad = len - str.length
// -*- node.jz -*-
let input = ''
process.stdin.on('readable', () => input += process.stdin.read() || '')
process.stdin.on('end', () => {
main()
})
const scanner = (depth, range, t = 0) => {
range -= 1
// -*- node.jz -*-
let input = ''
process.stdin.on('readable', () => input += process.stdin.read() || '')
process.stdin.on('end', () => {
main()
})
function dedupeConcat(p, c) {
const deduped = c.filter(item => !p.includes(item))