Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.HashMap;
- import java.util.Map;
- public class Advent3 {
- static enum Direction {
- North(-1,0), South(1,0), East(0,1), West(0,-1);
- private final int dx;
- private final int dy;
- private Direction(int dx, int dy) {
- this.dx = dx;
- this.dy = dy;
- }
- }
- static Map<Character, Direction> map = new HashMap<>();
- static {
- map.put('^', Direction.North);
- map.put('>', Direction.East);
- map.put('<', Direction.West);
- map.put('v', Direction.South);
- }
- public static void main(String[] args) {
- String data = "^^<<v<<v><v^^<><>^^<v ...etc...";
- int[][] grid = new int[10000][10000];
- int[] x = { 5000, 5000 };
- int[] y = { 5000, 5000 };
- //int rx = 5000;
- //int ry = 5000;
- int turn = 1;
- grid[x[turn]][y[turn]] = 1;
- int sum = 1;
- Direction currentDir;
- for (char each : data.toCharArray()) {
- turn ^= 1;
- currentDir = map.get(each);
- x[turn] += currentDir.dx;
- y[turn] += currentDir.dy;
- sum += grid[x[turn]][y[turn]] & 1 ^ 1;
- grid[x[turn]][y[turn]] |= 1;
- }
- System.out.println(sum);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment