Advertisement
VirKato

AoC 2022 Day 10

Dec 10th, 2022
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.69 KB | Source Code | 0 0
  1. package org.advent.of.code.y2022;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Line10 {
  6.  
  7.     public static void main(String[] args) {
  8.         solution();
  9.     }
  10.  
  11.     private static void solution() {
  12.         String test = """
  13.                addx 15
  14.                addx -11
  15.                addx 6
  16.                addx -3
  17.                addx 5
  18.                addx -1
  19.                addx -8
  20.                addx 13
  21.                addx 4
  22.                noop
  23.                addx -1
  24.                addx 5
  25.                addx -1
  26.                addx 5
  27.                addx -1
  28.                addx 5
  29.                addx -1
  30.                addx 5
  31.                addx -1
  32.                addx -35
  33.                addx 1
  34.                addx 24
  35.                addx -19
  36.                addx 1
  37.                addx 16
  38.                addx -11
  39.                noop
  40.                noop
  41.                addx 21
  42.                addx -15
  43.                noop
  44.                noop
  45.                addx -3
  46.                addx 9
  47.                addx 1
  48.                addx -3
  49.                addx 8
  50.                addx 1
  51.                addx 5
  52.                noop
  53.                noop
  54.                noop
  55.                noop
  56.                noop
  57.                addx -36
  58.                noop
  59.                addx 1
  60.                addx 7
  61.                noop
  62.                noop
  63.                noop
  64.                addx 2
  65.                addx 6
  66.                noop
  67.                noop
  68.                noop
  69.                noop
  70.                noop
  71.                addx 1
  72.                noop
  73.                noop
  74.                addx 7
  75.                addx 1
  76.                noop
  77.                addx -13
  78.                addx 13
  79.                addx 7
  80.                noop
  81.                addx 1
  82.                addx -33
  83.                noop
  84.                noop
  85.                noop
  86.                addx 2
  87.                noop
  88.                noop
  89.                noop
  90.                addx 8
  91.                noop
  92.                addx -1
  93.                addx 2
  94.                addx 1
  95.                noop
  96.                addx 17
  97.                addx -9
  98.                addx 1
  99.                addx 1
  100.                addx -3
  101.                addx 11
  102.                noop
  103.                noop
  104.                addx 1
  105.                noop
  106.                addx 1
  107.                noop
  108.                noop
  109.                addx -13
  110.                addx -19
  111.                addx 1
  112.                addx 3
  113.                addx 26
  114.                addx -30
  115.                addx 12
  116.                addx -1
  117.                addx 3
  118.                addx 1
  119.                noop
  120.                noop
  121.                noop
  122.                addx -9
  123.                addx 18
  124.                addx 1
  125.                addx 2
  126.                noop
  127.                noop
  128.                addx 9
  129.                noop
  130.                noop
  131.                noop
  132.                addx -1
  133.                addx 2
  134.                addx -37
  135.                addx 1
  136.                addx 3
  137.                noop
  138.                addx 15
  139.                addx -21
  140.                addx 22
  141.                addx -6
  142.                addx 1
  143.                noop
  144.                addx 2
  145.                addx 1
  146.                noop
  147.                addx -10
  148.                noop
  149.                noop
  150.                addx 20
  151.                addx 1
  152.                addx 2
  153.                addx 2
  154.                addx -6
  155.                addx -11
  156.                noop
  157.                noop
  158.                noop
  159.                """;
  160. //        data = test;
  161.  
  162.         System.out.println();
  163.  
  164.         String line = "";
  165.         long total = 0;
  166.         long FREQ = 0;
  167.         long X = 1;
  168.         long phase = 0;
  169.         long op = 0;
  170.         Scanner in = new Scanner(data);
  171.         while (in.hasNext()) {
  172.  
  173.             // задание 1
  174.  
  175.             if (phase % 20 == 0 && phase >= 20 && (phase - 20) % 40 == 0) {
  176.                 FREQ = phase * X;
  177. //                System.out.printf("Phase: %d x %d (%d)%n", phase, X, FREQ);
  178.                 total += FREQ;
  179.             }
  180.  
  181.             //--- 1
  182.  
  183.             X += op;
  184.             op = 0;
  185.  
  186.             if (in.hasNextLong()) {
  187.                 op = in.nextLong();
  188. //                System.out.println(op);
  189.             } else {
  190.                 String t = in.next();
  191. //                System.out.print(t + " ");
  192.             }
  193.  
  194.             // задание 2
  195.  
  196.             String s = ".";
  197.             if (phase % 40 >= (X - 1) % 40 && phase % 40 <= (X + 1) % 40) s = "#";
  198.             line += s;
  199.             if ((phase + 1) % 40 == 0) {
  200.                 System.out.println(line);
  201.                 line = "";
  202.             }
  203.  
  204.             //--- 2
  205.  
  206.             phase++;
  207.         }
  208.         System.out.println(" === " + total);
  209.     }
  210.  
  211.     private static String data = """
  212.            noop
  213.            addx 26
  214.            addx -21
  215.            addx 2
  216.            addx 3
  217.            noop
  218.            noop
  219.            addx 23
  220.            addx -17
  221.            addx -1
  222.            noop
  223.            noop
  224.            addx 7
  225.            noop
  226.            addx 3
  227.            addx 1
  228.            noop
  229.            noop
  230.            addx 2
  231.            noop
  232.            addx 7
  233.            noop
  234.            addx -12
  235.            addx 13
  236.            addx -38
  237.            addx 5
  238.            addx 34
  239.            addx -2
  240.            addx -29
  241.            addx 2
  242.            addx 5
  243.            addx 2
  244.            addx 3
  245.            addx -2
  246.            addx -1
  247.            addx 8
  248.            addx 2
  249.            addx 6
  250.            addx -26
  251.            addx 23
  252.            addx -26
  253.            addx 33
  254.            addx 2
  255.            addx -37
  256.            addx -1
  257.            addx 1
  258.            noop
  259.            noop
  260.            noop
  261.            addx 5
  262.            addx 5
  263.            addx 3
  264.            addx -2
  265.            addx 2
  266.            addx 5
  267.            addx 5
  268.            noop
  269.            noop
  270.            addx -2
  271.            addx 4
  272.            noop
  273.            noop
  274.            noop
  275.            addx 3
  276.            noop
  277.            noop
  278.            addx 7
  279.            addx -1
  280.            addx -35
  281.            addx -1
  282.            addx 5
  283.            addx 3
  284.            noop
  285.            addx 4
  286.            noop
  287.            noop
  288.            noop
  289.            noop
  290.            noop
  291.            addx 5
  292.            addx 1
  293.            noop
  294.            noop
  295.            noop
  296.            addx -7
  297.            addx 12
  298.            addx 2
  299.            addx 7
  300.            noop
  301.            addx -2
  302.            noop
  303.            noop
  304.            addx 7
  305.            addx 2
  306.            addx -39
  307.            noop
  308.            noop
  309.            addx 5
  310.            addx 2
  311.            addx -4
  312.            addx 25
  313.            addx -18
  314.            addx 7
  315.            noop
  316.            addx -2
  317.            addx 5
  318.            addx 2
  319.            addx 6
  320.            addx -5
  321.            addx 2
  322.            addx -22
  323.            addx 29
  324.            addx -21
  325.            addx -7
  326.            addx 31
  327.            addx 2
  328.            noop
  329.            addx -36
  330.            addx 1
  331.            addx 5
  332.            noop
  333.            addx 1
  334.            addx 4
  335.            addx 5
  336.            noop
  337.            noop
  338.            noop
  339.            addx 3
  340.            noop
  341.            addx -13
  342.            addx 15
  343.            noop
  344.            addx 5
  345.            noop
  346.            addx 1
  347.            noop
  348.            addx 3
  349.            addx 2
  350.            addx 4
  351.            addx 3
  352.            noop
  353.            addx -3
  354.            noop
  355.            """;
  356. }
  357.  
Tags: adventofcode
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement