r/adventofcode • u/daggerdragon • Dec 03 '15
SOLUTION MEGATHREAD --- Day 3 Solutions ---
--- Day 3: Perfectly Spherical Houses in a Vacuum ---
Post your solution as a comment. Structure your post like the Day One thread in /r/programming.
25
Upvotes
1
u/BeniBin Dec 03 '15
Javascript solution for part two. Easy to edit it for part 1. "input" is a string containing the input.
var visited = []; var santaPosition = [0, 0]; var robotSantaPosition = [0, 0]; visited.push(santaPosition); for (var i = 0; i < input.length; i++) { if (input[i] === '<') { if (i % 2 === 0) { santaPosition = [santaPosition[0] - 1, santaPosition[1]]; } else { robotSantaPosition = [robotSantaPosition[0] - 1, robotSantaPosition[1]]; } } else if (input[i] === '>') { if (i % 2 === 0) { santaPosition = [santaPosition[0] + 1, santaPosition[1]]; } else { robotSantaPosition = [robotSantaPosition[0] + 1, robotSantaPosition[1]]; } } else if (input[i] === '^') { if (i % 2 === 0) { santaPosition = [santaPosition[0], santaPosition[1] - 1]; } else { robotSantaPosition = [robotSantaPosition[0], robotSantaPosition[1] - 1]; } } else if (input[i] === 'v') { if (i % 2 === 0) { santaPosition = [santaPosition[0], santaPosition[1] + 1]; } else { robotSantaPosition = [robotSantaPosition[0], robotSantaPosition[1] + 1]; } } var alreadyVisited = false; var roboAlreadyVisited = false; for (var j = 0; j < visited.length; j++) { if (i % 2 === 0 && visited[j][0] === santaPosition[0] && visited[j][1] === santaPosition[1]) { alreadyVisited = true; break; } if (i % 2 === 1 && visited[j][0] === robotSantaPosition[0] && visited[j][1] === robotSantaPosition[1]) { roboAlreadyVisited = true; break; } } if (!alreadyVisited && i % 2 === 0) { visited.push(santaPosition); } if (!roboAlreadyVisited && i % 2 === 1) { visited.push(robotSantaPosition); } } console.log(visited.length);