diff --git a/2018/day-4/input b/2018/day-4/input new file mode 100644 index 0000000..bcbdbcb --- /dev/null +++ b/2018/day-4/input @@ -0,0 +1,1040 @@ +[1518-10-05 00:10] falls asleep +[1518-07-22 23:53] Guard #1949 begins shift +[1518-07-06 00:55] wakes up +[1518-07-16 00:38] falls asleep +[1518-06-05 00:32] falls asleep +[1518-08-17 00:30] falls asleep +[1518-05-15 00:40] wakes up +[1518-10-14 00:00] Guard #853 begins shift +[1518-08-02 00:01] Guard #853 begins shift +[1518-07-18 00:37] falls asleep +[1518-04-29 00:36] wakes up +[1518-03-24 00:56] wakes up +[1518-11-03 00:32] falls asleep +[1518-06-01 00:54] falls asleep +[1518-08-07 00:01] Guard #761 begins shift +[1518-04-23 00:01] Guard #311 begins shift +[1518-10-03 00:43] wakes up +[1518-11-23 00:48] wakes up +[1518-05-21 00:50] wakes up +[1518-09-06 00:47] wakes up +[1518-09-20 00:58] wakes up +[1518-05-01 00:56] wakes up +[1518-10-15 00:53] wakes up +[1518-04-20 00:11] falls asleep +[1518-06-01 00:21] falls asleep +[1518-10-06 23:54] Guard #2011 begins shift +[1518-05-18 23:58] Guard #1433 begins shift +[1518-05-10 00:53] wakes up +[1518-03-29 00:52] falls asleep +[1518-03-10 00:26] wakes up +[1518-07-07 00:43] wakes up +[1518-10-22 00:17] falls asleep +[1518-08-20 00:39] wakes up +[1518-03-22 23:57] Guard #1129 begins shift +[1518-11-22 00:01] Guard #3467 begins shift +[1518-02-27 00:10] falls asleep +[1518-09-10 23:50] Guard #853 begins shift +[1518-04-23 00:27] wakes up +[1518-07-12 00:50] wakes up +[1518-10-13 00:57] falls asleep +[1518-03-21 23:59] Guard #2011 begins shift +[1518-04-26 00:00] Guard #1193 begins shift +[1518-03-02 00:01] falls asleep +[1518-08-05 00:45] wakes up +[1518-09-12 00:34] wakes up +[1518-05-13 00:04] Guard #1129 begins shift +[1518-11-15 00:59] wakes up +[1518-06-22 00:11] falls asleep +[1518-05-08 00:03] Guard #761 begins shift +[1518-10-18 00:21] wakes up +[1518-08-07 00:24] falls asleep +[1518-10-27 23:56] Guard #647 begins shift +[1518-05-29 00:10] falls asleep +[1518-08-13 23:48] Guard #1657 begins shift +[1518-07-03 00:52] wakes up +[1518-05-20 00:04] falls asleep +[1518-07-01 00:09] wakes up +[1518-07-04 00:17] wakes up +[1518-02-26 00:44] wakes up +[1518-05-22 00:53] wakes up +[1518-10-19 00:26] wakes up +[1518-10-20 00:46] falls asleep +[1518-05-18 00:35] wakes up +[1518-06-23 00:32] falls asleep +[1518-11-02 00:01] Guard #1129 begins shift +[1518-08-30 00:05] falls asleep +[1518-07-21 00:20] falls asleep +[1518-05-31 00:50] falls asleep +[1518-11-13 00:45] wakes up +[1518-10-12 00:02] Guard #2719 begins shift +[1518-07-21 00:38] wakes up +[1518-07-28 23:52] Guard #2719 begins shift +[1518-09-05 00:53] falls asleep +[1518-04-19 00:10] falls asleep +[1518-07-07 00:01] falls asleep +[1518-07-24 00:56] wakes up +[1518-11-01 00:52] wakes up +[1518-10-31 00:44] wakes up +[1518-06-24 00:30] wakes up +[1518-08-25 00:40] falls asleep +[1518-03-18 00:09] falls asleep +[1518-10-09 00:00] Guard #223 begins shift +[1518-11-15 00:02] Guard #3499 begins shift +[1518-08-29 00:12] falls asleep +[1518-10-27 00:04] falls asleep +[1518-03-08 00:55] wakes up +[1518-03-30 00:24] falls asleep +[1518-06-21 23:57] Guard #653 begins shift +[1518-03-10 00:29] falls asleep +[1518-06-07 00:36] wakes up +[1518-10-13 00:37] falls asleep +[1518-07-30 23:48] Guard #653 begins shift +[1518-04-04 00:59] wakes up +[1518-08-26 00:55] wakes up +[1518-11-23 00:02] Guard #1193 begins shift +[1518-06-12 00:53] falls asleep +[1518-08-25 00:56] wakes up +[1518-07-15 00:35] falls asleep +[1518-06-14 00:29] falls asleep +[1518-06-20 00:40] falls asleep +[1518-07-28 00:36] falls asleep +[1518-04-11 00:47] falls asleep +[1518-08-28 00:00] Guard #727 begins shift +[1518-04-07 23:57] Guard #311 begins shift +[1518-05-13 00:18] falls asleep +[1518-04-18 00:13] falls asleep +[1518-09-16 23:59] Guard #2719 begins shift +[1518-09-19 00:10] falls asleep +[1518-05-08 23:58] Guard #2503 begins shift +[1518-07-11 00:01] Guard #2011 begins shift +[1518-06-26 00:39] falls asleep +[1518-03-07 00:47] wakes up +[1518-06-22 00:57] wakes up +[1518-09-01 00:38] wakes up +[1518-07-20 00:03] falls asleep +[1518-07-13 00:50] wakes up +[1518-03-25 00:26] falls asleep +[1518-04-19 00:55] wakes up +[1518-09-04 00:41] wakes up +[1518-03-24 00:35] wakes up +[1518-07-19 00:41] falls asleep +[1518-07-31 00:33] falls asleep +[1518-11-23 00:30] falls asleep +[1518-10-23 00:03] Guard #311 begins shift +[1518-10-01 23:56] Guard #853 begins shift +[1518-05-28 00:35] wakes up +[1518-05-07 00:04] Guard #1433 begins shift +[1518-11-13 00:05] falls asleep +[1518-09-18 00:25] falls asleep +[1518-11-21 00:52] wakes up +[1518-07-08 00:43] falls asleep +[1518-08-18 23:54] Guard #1949 begins shift +[1518-05-10 23:58] Guard #647 begins shift +[1518-03-31 00:50] falls asleep +[1518-05-21 00:32] falls asleep +[1518-06-05 00:04] Guard #223 begins shift +[1518-11-06 00:02] Guard #3467 begins shift +[1518-03-08 00:14] wakes up +[1518-10-20 00:58] wakes up +[1518-03-11 00:32] falls asleep +[1518-07-25 00:29] falls asleep +[1518-04-04 00:33] wakes up +[1518-07-21 00:47] falls asleep +[1518-09-30 00:00] Guard #653 begins shift +[1518-11-18 23:57] Guard #3089 begins shift +[1518-11-08 00:25] falls asleep +[1518-09-16 00:39] falls asleep +[1518-03-09 00:53] wakes up +[1518-09-30 00:51] wakes up +[1518-09-11 23:56] Guard #1193 begins shift +[1518-07-26 00:22] falls asleep +[1518-05-30 00:35] wakes up +[1518-03-01 00:48] falls asleep +[1518-07-06 00:36] falls asleep +[1518-06-08 00:28] wakes up +[1518-08-31 00:37] falls asleep +[1518-03-19 00:18] falls asleep +[1518-09-22 00:57] falls asleep +[1518-07-30 00:29] wakes up +[1518-05-17 00:10] falls asleep +[1518-10-10 00:54] wakes up +[1518-05-05 00:12] falls asleep +[1518-03-04 00:31] falls asleep +[1518-05-18 00:58] wakes up +[1518-10-13 00:01] Guard #761 begins shift +[1518-09-05 23:58] Guard #1129 begins shift +[1518-07-21 00:33] wakes up +[1518-05-24 00:13] falls asleep +[1518-04-14 00:27] wakes up +[1518-03-13 23:57] Guard #653 begins shift +[1518-08-25 00:18] falls asleep +[1518-05-29 00:49] wakes up +[1518-06-04 00:24] falls asleep +[1518-07-29 00:32] falls asleep +[1518-11-05 00:51] falls asleep +[1518-10-25 00:24] falls asleep +[1518-06-11 00:00] Guard #2719 begins shift +[1518-08-28 00:48] wakes up +[1518-06-03 00:47] falls asleep +[1518-11-17 23:56] Guard #2011 begins shift +[1518-06-26 00:53] wakes up +[1518-08-13 00:32] falls asleep +[1518-07-02 00:59] wakes up +[1518-03-20 00:56] wakes up +[1518-03-24 00:00] Guard #1657 begins shift +[1518-10-09 00:45] wakes up +[1518-08-24 00:54] falls asleep +[1518-06-14 00:04] Guard #1949 begins shift +[1518-09-08 00:52] wakes up +[1518-09-25 00:04] Guard #2011 begins shift +[1518-03-01 00:24] falls asleep +[1518-11-06 00:57] wakes up +[1518-08-27 00:42] wakes up +[1518-08-18 00:24] falls asleep +[1518-10-28 00:56] wakes up +[1518-09-22 00:01] Guard #727 begins shift +[1518-10-26 00:00] Guard #1433 begins shift +[1518-07-11 00:56] wakes up +[1518-04-02 00:04] Guard #311 begins shift +[1518-03-22 00:58] wakes up +[1518-09-12 00:15] falls asleep +[1518-11-12 23:50] Guard #1657 begins shift +[1518-07-19 00:53] wakes up +[1518-11-21 00:38] falls asleep +[1518-06-17 00:50] wakes up +[1518-04-08 00:59] wakes up +[1518-06-30 00:55] wakes up +[1518-04-20 00:42] wakes up +[1518-03-03 00:57] wakes up +[1518-04-26 00:07] falls asleep +[1518-04-13 00:37] falls asleep +[1518-05-11 00:32] wakes up +[1518-08-02 00:23] falls asleep +[1518-08-17 23:48] Guard #1877 begins shift +[1518-06-11 23:56] Guard #3137 begins shift +[1518-05-03 00:34] falls asleep +[1518-11-09 00:45] wakes up +[1518-05-31 00:39] wakes up +[1518-07-19 23:52] Guard #647 begins shift +[1518-10-08 00:02] Guard #653 begins shift +[1518-07-21 00:51] wakes up +[1518-06-14 00:56] wakes up +[1518-05-03 00:24] wakes up +[1518-05-14 00:40] falls asleep +[1518-09-17 00:48] falls asleep +[1518-08-21 00:53] falls asleep +[1518-11-20 00:12] wakes up +[1518-09-03 00:57] wakes up +[1518-04-22 00:55] wakes up +[1518-06-08 00:24] falls asleep +[1518-04-06 00:59] wakes up +[1518-08-22 00:26] falls asleep +[1518-03-13 00:18] falls asleep +[1518-03-29 00:37] wakes up +[1518-06-21 00:48] falls asleep +[1518-09-02 00:23] falls asleep +[1518-08-29 23:50] Guard #653 begins shift +[1518-03-22 00:36] falls asleep +[1518-05-14 00:31] wakes up +[1518-09-13 00:49] wakes up +[1518-08-05 00:35] falls asleep +[1518-05-24 00:40] wakes up +[1518-05-18 00:27] falls asleep +[1518-03-20 00:04] Guard #653 begins shift +[1518-06-19 00:04] Guard #653 begins shift +[1518-03-24 00:30] falls asleep +[1518-03-28 00:55] wakes up +[1518-11-19 23:52] Guard #2719 begins shift +[1518-09-15 00:01] falls asleep +[1518-04-28 00:44] wakes up +[1518-09-23 00:08] falls asleep +[1518-09-20 00:56] falls asleep +[1518-03-06 00:44] wakes up +[1518-11-07 00:25] falls asleep +[1518-06-26 23:56] Guard #1193 begins shift +[1518-07-11 23:59] Guard #653 begins shift +[1518-04-01 00:00] Guard #727 begins shift +[1518-03-15 00:32] falls asleep +[1518-09-21 00:11] falls asleep +[1518-03-11 23:58] Guard #1129 begins shift +[1518-07-24 00:38] falls asleep +[1518-06-21 00:59] wakes up +[1518-04-13 00:01] Guard #2503 begins shift +[1518-05-08 00:46] wakes up +[1518-04-14 00:04] Guard #2011 begins shift +[1518-10-12 00:39] falls asleep +[1518-10-29 00:07] falls asleep +[1518-08-26 00:28] wakes up +[1518-04-03 23:59] Guard #1657 begins shift +[1518-05-13 00:52] wakes up +[1518-11-03 00:59] wakes up +[1518-08-05 00:27] wakes up +[1518-03-12 23:56] Guard #3137 begins shift +[1518-04-21 00:35] falls asleep +[1518-06-30 23:53] Guard #853 begins shift +[1518-06-09 23:58] Guard #1949 begins shift +[1518-06-18 00:00] Guard #853 begins shift +[1518-09-19 00:43] falls asleep +[1518-10-30 00:58] wakes up +[1518-08-31 00:02] Guard #3137 begins shift +[1518-05-19 00:24] falls asleep +[1518-05-10 00:52] falls asleep +[1518-07-04 00:27] falls asleep +[1518-06-02 00:26] falls asleep +[1518-11-09 00:03] Guard #653 begins shift +[1518-08-07 00:48] wakes up +[1518-08-16 23:51] Guard #311 begins shift +[1518-07-26 00:04] Guard #727 begins shift +[1518-04-27 00:41] falls asleep +[1518-05-24 00:39] falls asleep +[1518-05-20 00:23] wakes up +[1518-05-04 00:03] Guard #3137 begins shift +[1518-03-09 00:05] falls asleep +[1518-04-18 00:52] wakes up +[1518-08-17 00:04] falls asleep +[1518-09-08 00:41] falls asleep +[1518-04-14 23:56] Guard #1129 begins shift +[1518-03-30 23:59] Guard #1193 begins shift +[1518-07-14 00:53] wakes up +[1518-06-16 00:02] Guard #2503 begins shift +[1518-09-11 00:55] wakes up +[1518-07-18 00:45] wakes up +[1518-05-10 00:43] falls asleep +[1518-09-22 00:54] wakes up +[1518-07-29 00:39] wakes up +[1518-08-20 00:19] falls asleep +[1518-05-15 00:30] falls asleep +[1518-04-11 00:29] wakes up +[1518-10-25 00:00] Guard #647 begins shift +[1518-07-22 00:46] wakes up +[1518-09-20 23:57] Guard #653 begins shift +[1518-05-25 00:03] Guard #727 begins shift +[1518-03-23 00:30] falls asleep +[1518-06-04 00:25] wakes up +[1518-07-09 00:12] falls asleep +[1518-10-03 00:03] wakes up +[1518-08-03 00:13] falls asleep +[1518-09-22 00:58] wakes up +[1518-03-09 00:34] wakes up +[1518-07-29 00:00] falls asleep +[1518-11-04 00:11] falls asleep +[1518-10-15 00:01] Guard #1433 begins shift +[1518-06-02 00:52] wakes up +[1518-03-29 00:46] wakes up +[1518-10-28 00:48] falls asleep +[1518-07-16 23:47] Guard #2011 begins shift +[1518-04-14 00:14] falls asleep +[1518-06-09 00:48] falls asleep +[1518-08-11 00:52] wakes up +[1518-03-04 00:49] wakes up +[1518-03-19 00:49] wakes up +[1518-08-29 00:33] wakes up +[1518-08-25 23:56] Guard #1193 begins shift +[1518-06-24 00:40] falls asleep +[1518-11-01 00:04] Guard #647 begins shift +[1518-07-03 00:08] falls asleep +[1518-10-24 00:40] falls asleep +[1518-04-10 00:03] Guard #2579 begins shift +[1518-07-04 00:07] falls asleep +[1518-06-10 00:14] falls asleep +[1518-06-08 00:36] falls asleep +[1518-08-07 00:38] wakes up +[1518-08-13 00:59] wakes up +[1518-09-11 00:01] falls asleep +[1518-02-26 00:58] wakes up +[1518-05-18 00:00] Guard #3499 begins shift +[1518-08-05 00:24] falls asleep +[1518-05-15 00:48] falls asleep +[1518-09-24 00:39] wakes up +[1518-11-01 00:26] falls asleep +[1518-04-05 00:24] falls asleep +[1518-07-06 23:46] Guard #1129 begins shift +[1518-05-14 23:57] Guard #2719 begins shift +[1518-03-21 00:33] wakes up +[1518-09-28 00:19] falls asleep +[1518-04-19 00:04] Guard #223 begins shift +[1518-06-28 00:50] wakes up +[1518-08-23 00:11] falls asleep +[1518-10-04 00:07] falls asleep +[1518-02-28 00:06] falls asleep +[1518-04-19 00:32] wakes up +[1518-03-21 00:42] wakes up +[1518-06-12 00:58] wakes up +[1518-06-09 00:01] Guard #223 begins shift +[1518-07-17 00:00] falls asleep +[1518-06-27 00:21] falls asleep +[1518-05-15 00:56] wakes up +[1518-03-05 00:39] wakes up +[1518-06-25 00:03] Guard #1657 begins shift +[1518-08-01 00:00] Guard #1657 begins shift +[1518-09-10 00:46] wakes up +[1518-08-16 00:50] wakes up +[1518-07-14 00:02] Guard #3499 begins shift +[1518-03-26 00:52] wakes up +[1518-06-25 00:13] falls asleep +[1518-11-04 23:50] Guard #3137 begins shift +[1518-08-08 23:57] Guard #1181 begins shift +[1518-10-13 00:40] wakes up +[1518-09-30 00:07] falls asleep +[1518-03-05 00:17] wakes up +[1518-03-29 00:57] wakes up +[1518-08-08 00:59] wakes up +[1518-08-21 00:05] falls asleep +[1518-09-23 00:04] Guard #3499 begins shift +[1518-03-30 00:19] wakes up +[1518-10-21 23:58] Guard #1129 begins shift +[1518-08-10 00:11] falls asleep +[1518-04-02 00:51] falls asleep +[1518-04-10 00:33] wakes up +[1518-03-17 00:44] wakes up +[1518-04-18 00:32] wakes up +[1518-05-09 00:13] falls asleep +[1518-11-03 00:26] wakes up +[1518-05-06 00:58] wakes up +[1518-04-30 00:14] falls asleep +[1518-09-01 23:59] Guard #2503 begins shift +[1518-03-26 00:00] falls asleep +[1518-03-24 00:52] falls asleep +[1518-07-16 00:47] wakes up +[1518-09-18 00:04] Guard #1657 begins shift +[1518-05-31 00:58] wakes up +[1518-04-23 00:17] falls asleep +[1518-06-23 00:00] Guard #853 begins shift +[1518-08-13 00:02] Guard #223 begins shift +[1518-06-20 00:01] Guard #3467 begins shift +[1518-09-05 00:44] wakes up +[1518-05-05 00:48] wakes up +[1518-11-01 00:50] falls asleep +[1518-10-24 00:55] wakes up +[1518-08-29 00:58] wakes up +[1518-03-03 00:03] Guard #223 begins shift +[1518-08-04 00:42] falls asleep +[1518-04-18 00:48] falls asleep +[1518-07-07 00:39] falls asleep +[1518-04-04 23:57] Guard #2503 begins shift +[1518-04-03 00:55] wakes up +[1518-09-22 00:53] falls asleep +[1518-08-08 00:02] Guard #3467 begins shift +[1518-06-13 00:01] Guard #1129 begins shift +[1518-09-21 00:31] wakes up +[1518-08-01 00:24] falls asleep +[1518-10-29 00:40] wakes up +[1518-03-22 00:28] falls asleep +[1518-03-22 00:30] wakes up +[1518-10-19 00:03] falls asleep +[1518-04-03 00:51] falls asleep +[1518-08-30 00:55] wakes up +[1518-09-25 00:47] wakes up +[1518-09-09 23:56] Guard #1657 begins shift +[1518-10-15 00:09] falls asleep +[1518-05-16 00:42] wakes up +[1518-08-30 00:43] wakes up +[1518-05-01 00:00] falls asleep +[1518-08-22 00:02] Guard #653 begins shift +[1518-08-24 00:55] wakes up +[1518-09-02 00:39] falls asleep +[1518-03-31 00:41] wakes up +[1518-06-08 00:38] wakes up +[1518-10-11 00:59] wakes up +[1518-11-20 00:00] falls asleep +[1518-08-23 23:56] Guard #2719 begins shift +[1518-11-11 00:04] falls asleep +[1518-09-03 00:52] wakes up +[1518-04-05 00:48] falls asleep +[1518-11-18 00:51] wakes up +[1518-09-26 00:17] falls asleep +[1518-05-29 23:47] Guard #1657 begins shift +[1518-06-23 00:48] wakes up +[1518-08-06 00:37] wakes up +[1518-08-24 00:21] falls asleep +[1518-07-28 00:53] wakes up +[1518-04-07 00:10] falls asleep +[1518-07-27 00:36] wakes up +[1518-08-24 23:58] Guard #727 begins shift +[1518-09-09 00:04] falls asleep +[1518-04-12 00:57] wakes up +[1518-06-24 00:27] falls asleep +[1518-06-29 00:02] Guard #1949 begins shift +[1518-05-29 00:01] Guard #727 begins shift +[1518-05-10 00:03] Guard #3467 begins shift +[1518-07-27 00:00] Guard #647 begins shift +[1518-09-15 00:48] wakes up +[1518-06-24 00:04] Guard #727 begins shift +[1518-05-26 00:19] falls asleep +[1518-10-26 00:50] wakes up +[1518-05-16 00:00] Guard #1657 begins shift +[1518-11-06 00:50] wakes up +[1518-06-19 00:43] falls asleep +[1518-04-09 00:46] wakes up +[1518-10-16 00:27] wakes up +[1518-06-07 00:10] falls asleep +[1518-04-11 00:59] wakes up +[1518-09-23 00:45] wakes up +[1518-08-29 00:47] falls asleep +[1518-09-25 00:42] falls asleep +[1518-04-05 23:46] Guard #1129 begins shift +[1518-05-04 00:59] wakes up +[1518-08-22 00:28] wakes up +[1518-05-02 00:47] falls asleep +[1518-10-07 00:51] falls asleep +[1518-09-30 00:47] falls asleep +[1518-07-12 00:31] falls asleep +[1518-03-07 23:50] Guard #1193 begins shift +[1518-08-03 00:03] Guard #2719 begins shift +[1518-10-06 00:57] wakes up +[1518-02-26 00:11] falls asleep +[1518-03-27 00:10] falls asleep +[1518-05-10 00:44] wakes up +[1518-05-13 23:53] Guard #727 begins shift +[1518-04-14 00:54] wakes up +[1518-10-05 00:44] wakes up +[1518-10-30 00:12] falls asleep +[1518-09-08 23:54] Guard #2503 begins shift +[1518-03-28 00:05] falls asleep +[1518-05-17 00:32] wakes up +[1518-09-29 00:54] wakes up +[1518-10-31 00:01] Guard #1193 begins shift +[1518-10-23 00:36] wakes up +[1518-05-03 00:06] falls asleep +[1518-09-16 00:54] wakes up +[1518-07-27 00:56] wakes up +[1518-08-01 00:25] wakes up +[1518-08-12 00:46] wakes up +[1518-07-24 00:51] falls asleep +[1518-04-28 00:28] wakes up +[1518-04-12 00:23] falls asleep +[1518-05-12 00:34] falls asleep +[1518-04-24 00:57] wakes up +[1518-06-15 00:14] falls asleep +[1518-06-22 00:18] wakes up +[1518-09-07 23:58] Guard #853 begins shift +[1518-09-01 00:03] falls asleep +[1518-08-06 00:30] falls asleep +[1518-07-05 00:48] wakes up +[1518-04-07 00:22] wakes up +[1518-05-22 23:56] Guard #2579 begins shift +[1518-07-21 00:04] Guard #223 begins shift +[1518-08-22 00:31] falls asleep +[1518-08-30 00:52] falls asleep +[1518-07-05 00:03] Guard #1129 begins shift +[1518-11-10 00:35] falls asleep +[1518-09-20 00:03] Guard #3499 begins shift +[1518-05-25 23:56] Guard #1877 begins shift +[1518-09-20 00:51] wakes up +[1518-11-21 00:00] falls asleep +[1518-05-07 00:24] wakes up +[1518-05-03 00:46] wakes up +[1518-10-17 23:59] Guard #2579 begins shift +[1518-03-12 00:45] wakes up +[1518-05-21 00:01] Guard #3467 begins shift +[1518-06-28 00:43] falls asleep +[1518-06-21 00:51] wakes up +[1518-04-01 00:26] wakes up +[1518-07-16 00:04] Guard #223 begins shift +[1518-08-11 00:30] falls asleep +[1518-07-17 00:56] falls asleep +[1518-08-27 00:27] falls asleep +[1518-10-22 00:22] wakes up +[1518-07-17 00:53] wakes up +[1518-10-08 00:55] falls asleep +[1518-10-08 00:41] falls asleep +[1518-05-11 23:58] Guard #647 begins shift +[1518-03-15 00:39] wakes up +[1518-03-27 23:51] Guard #1877 begins shift +[1518-11-10 00:03] Guard #1877 begins shift +[1518-07-12 00:49] falls asleep +[1518-04-19 00:48] falls asleep +[1518-05-22 00:02] Guard #761 begins shift +[1518-09-03 00:00] Guard #647 begins shift +[1518-10-14 00:53] wakes up +[1518-05-05 23:50] Guard #647 begins shift +[1518-11-03 00:54] falls asleep +[1518-03-31 00:56] wakes up +[1518-09-23 00:44] falls asleep +[1518-04-11 00:32] falls asleep +[1518-07-11 00:17] falls asleep +[1518-10-18 00:58] wakes up +[1518-04-20 23:56] Guard #853 begins shift +[1518-09-02 00:26] wakes up +[1518-07-15 00:04] Guard #2011 begins shift +[1518-04-24 00:03] Guard #647 begins shift +[1518-05-03 00:54] falls asleep +[1518-03-16 23:56] Guard #647 begins shift +[1518-03-03 23:57] Guard #3467 begins shift +[1518-07-19 00:00] Guard #1129 begins shift +[1518-06-03 00:51] wakes up +[1518-03-16 00:04] Guard #2011 begins shift +[1518-02-25 00:20] falls asleep +[1518-04-05 00:49] wakes up +[1518-03-06 00:42] falls asleep +[1518-03-30 00:06] falls asleep +[1518-04-13 00:15] falls asleep +[1518-07-18 00:29] falls asleep +[1518-06-06 00:21] falls asleep +[1518-07-21 00:37] falls asleep +[1518-06-10 00:46] wakes up +[1518-07-31 00:56] wakes up +[1518-09-24 00:02] Guard #3499 begins shift +[1518-04-07 00:37] falls asleep +[1518-05-22 00:44] falls asleep +[1518-10-18 23:48] Guard #2011 begins shift +[1518-09-07 00:04] Guard #3089 begins shift +[1518-09-27 00:32] falls asleep +[1518-03-28 00:37] wakes up +[1518-07-10 00:31] falls asleep +[1518-08-25 00:31] wakes up +[1518-10-20 00:01] Guard #2011 begins shift +[1518-07-23 00:53] wakes up +[1518-04-29 00:00] Guard #1657 begins shift +[1518-05-27 00:51] wakes up +[1518-03-21 00:26] falls asleep +[1518-06-17 00:01] Guard #3137 begins shift +[1518-11-04 00:59] wakes up +[1518-07-09 00:55] wakes up +[1518-03-17 00:13] falls asleep +[1518-09-28 00:51] wakes up +[1518-08-10 00:04] Guard #1877 begins shift +[1518-04-15 00:56] wakes up +[1518-04-08 00:39] falls asleep +[1518-06-29 00:46] wakes up +[1518-02-26 23:59] Guard #223 begins shift +[1518-09-26 00:39] wakes up +[1518-08-23 00:02] Guard #2719 begins shift +[1518-07-03 00:49] falls asleep +[1518-03-27 00:39] wakes up +[1518-09-14 00:01] Guard #3137 begins shift +[1518-07-08 00:53] wakes up +[1518-08-18 00:02] falls asleep +[1518-06-03 00:34] falls asleep +[1518-08-27 00:00] Guard #1877 begins shift +[1518-04-07 00:57] wakes up +[1518-05-27 00:00] Guard #1193 begins shift +[1518-04-30 00:52] wakes up +[1518-03-03 00:31] falls asleep +[1518-06-06 00:04] Guard #2579 begins shift +[1518-07-29 00:25] wakes up +[1518-06-29 00:08] falls asleep +[1518-05-03 00:57] wakes up +[1518-06-19 00:56] wakes up +[1518-06-27 00:52] wakes up +[1518-07-03 00:00] Guard #1433 begins shift +[1518-04-29 00:31] falls asleep +[1518-08-15 23:57] Guard #2011 begins shift +[1518-05-05 00:04] Guard #2011 begins shift +[1518-10-04 23:57] Guard #727 begins shift +[1518-08-04 00:00] Guard #311 begins shift +[1518-07-25 00:41] wakes up +[1518-08-20 23:52] Guard #727 begins shift +[1518-10-21 00:00] Guard #1949 begins shift +[1518-04-22 00:34] falls asleep +[1518-11-12 00:42] falls asleep +[1518-03-07 00:33] falls asleep +[1518-04-06 00:05] falls asleep +[1518-04-08 00:54] falls asleep +[1518-07-24 23:58] Guard #727 begins shift +[1518-08-03 00:51] wakes up +[1518-08-04 00:58] wakes up +[1518-04-09 00:30] falls asleep +[1518-09-23 00:41] wakes up +[1518-03-23 00:56] falls asleep +[1518-04-23 00:49] falls asleep +[1518-10-14 00:48] falls asleep +[1518-04-08 23:56] Guard #1129 begins shift +[1518-05-12 00:57] wakes up +[1518-10-19 00:56] wakes up +[1518-11-06 00:53] falls asleep +[1518-06-11 00:48] wakes up +[1518-11-03 00:47] wakes up +[1518-10-12 00:32] wakes up +[1518-03-12 00:14] falls asleep +[1518-11-22 00:20] falls asleep +[1518-06-03 00:35] wakes up +[1518-05-27 23:57] Guard #1129 begins shift +[1518-11-03 23:59] Guard #647 begins shift +[1518-06-06 00:29] wakes up +[1518-07-30 00:00] Guard #3499 begins shift +[1518-04-25 00:44] falls asleep +[1518-04-10 00:57] falls asleep +[1518-09-13 00:38] falls asleep +[1518-10-04 00:50] wakes up +[1518-06-01 23:56] Guard #223 begins shift +[1518-06-09 00:59] wakes up +[1518-10-18 00:06] falls asleep +[1518-09-29 00:10] falls asleep +[1518-04-19 00:22] falls asleep +[1518-10-15 00:48] falls asleep +[1518-11-18 00:41] wakes up +[1518-02-27 00:30] wakes up +[1518-04-27 23:58] Guard #2719 begins shift +[1518-03-11 00:00] Guard #1657 begins shift +[1518-11-14 00:43] wakes up +[1518-04-29 00:57] wakes up +[1518-10-21 00:29] falls asleep +[1518-11-07 23:58] Guard #2719 begins shift +[1518-10-06 00:03] Guard #761 begins shift +[1518-03-16 00:47] falls asleep +[1518-07-10 00:02] Guard #1193 begins shift +[1518-04-27 00:47] wakes up +[1518-09-12 00:42] falls asleep +[1518-04-17 00:58] wakes up +[1518-08-18 00:32] wakes up +[1518-07-13 00:22] falls asleep +[1518-07-27 00:14] falls asleep +[1518-07-23 00:00] falls asleep +[1518-10-19 00:30] falls asleep +[1518-04-28 00:17] falls asleep +[1518-05-16 23:56] Guard #1949 begins shift +[1518-09-18 00:40] wakes up +[1518-09-28 00:00] Guard #727 begins shift +[1518-03-01 00:49] wakes up +[1518-07-27 23:56] Guard #311 begins shift +[1518-03-10 00:48] wakes up +[1518-03-09 00:41] falls asleep +[1518-04-25 00:03] Guard #2011 begins shift +[1518-06-26 00:31] wakes up +[1518-09-10 00:11] falls asleep +[1518-04-16 00:56] wakes up +[1518-03-29 00:44] falls asleep +[1518-05-14 00:44] wakes up +[1518-05-13 00:37] wakes up +[1518-03-23 00:59] wakes up +[1518-06-15 00:03] Guard #653 begins shift +[1518-04-15 00:07] falls asleep +[1518-02-26 00:37] falls asleep +[1518-02-28 00:00] Guard #3499 begins shift +[1518-11-17 00:32] falls asleep +[1518-04-14 00:48] falls asleep +[1518-11-06 00:48] falls asleep +[1518-06-26 00:00] Guard #653 begins shift +[1518-09-24 00:15] falls asleep +[1518-11-05 00:40] wakes up +[1518-11-18 00:11] falls asleep +[1518-11-14 00:28] falls asleep +[1518-08-08 00:17] falls asleep +[1518-03-07 00:01] Guard #1949 begins shift +[1518-07-10 00:32] wakes up +[1518-03-10 00:25] falls asleep +[1518-07-23 23:57] Guard #1433 begins shift +[1518-05-13 00:48] falls asleep +[1518-10-16 00:23] falls asleep +[1518-10-10 00:44] falls asleep +[1518-03-26 23:59] Guard #223 begins shift +[1518-03-19 00:03] Guard #1129 begins shift +[1518-08-14 00:02] falls asleep +[1518-05-27 00:29] falls asleep +[1518-04-04 00:37] falls asleep +[1518-03-30 00:54] wakes up +[1518-10-04 00:53] falls asleep +[1518-10-26 00:25] falls asleep +[1518-06-05 00:17] falls asleep +[1518-11-18 00:45] falls asleep +[1518-05-02 00:28] falls asleep +[1518-02-26 00:19] wakes up +[1518-03-17 23:59] Guard #3467 begins shift +[1518-04-28 00:31] falls asleep +[1518-07-08 00:03] Guard #1193 begins shift +[1518-10-18 00:26] falls asleep +[1518-04-21 00:58] wakes up +[1518-03-23 00:42] wakes up +[1518-10-07 00:59] wakes up +[1518-09-20 00:50] falls asleep +[1518-03-08 23:52] Guard #761 begins shift +[1518-11-07 00:52] wakes up +[1518-08-19 00:47] wakes up +[1518-05-19 00:29] wakes up +[1518-09-19 00:16] wakes up +[1518-10-23 00:51] falls asleep +[1518-07-05 00:19] wakes up +[1518-04-08 00:50] wakes up +[1518-11-17 00:58] wakes up +[1518-07-08 23:56] Guard #1193 begins shift +[1518-11-11 00:19] wakes up +[1518-05-09 00:47] wakes up +[1518-06-13 00:49] wakes up +[1518-10-29 00:00] Guard #223 begins shift +[1518-03-25 00:45] wakes up +[1518-10-28 00:34] falls asleep +[1518-08-05 00:03] Guard #3467 begins shift +[1518-09-30 00:16] wakes up +[1518-05-23 23:58] Guard #2579 begins shift +[1518-08-14 00:52] wakes up +[1518-04-07 00:02] Guard #2503 begins shift +[1518-11-03 00:00] Guard #223 begins shift +[1518-03-08 00:30] falls asleep +[1518-09-22 00:43] wakes up +[1518-10-11 00:04] Guard #3137 begins shift +[1518-07-17 00:57] wakes up +[1518-11-11 00:30] falls asleep +[1518-04-13 00:50] wakes up +[1518-06-24 00:59] wakes up +[1518-10-12 00:25] falls asleep +[1518-04-17 23:57] Guard #223 begins shift +[1518-02-25 23:56] Guard #3499 begins shift +[1518-04-19 23:57] Guard #1193 begins shift +[1518-06-04 00:00] Guard #3499 begins shift +[1518-06-15 00:56] wakes up +[1518-04-24 00:18] falls asleep +[1518-11-10 00:40] wakes up +[1518-08-29 00:03] Guard #223 begins shift +[1518-05-23 00:38] wakes up +[1518-02-26 00:53] falls asleep +[1518-10-21 00:34] wakes up +[1518-03-08 00:05] falls asleep +[1518-03-18 00:18] wakes up +[1518-06-20 00:52] wakes up +[1518-10-08 00:47] wakes up +[1518-10-02 23:52] Guard #2503 begins shift +[1518-07-14 00:13] falls asleep +[1518-04-02 00:52] wakes up +[1518-11-02 00:56] wakes up +[1518-09-03 00:56] falls asleep +[1518-07-28 00:43] wakes up +[1518-04-30 23:46] Guard #1949 begins shift +[1518-06-18 00:57] wakes up +[1518-07-05 23:57] Guard #1433 begins shift +[1518-04-19 00:14] wakes up +[1518-06-16 00:23] wakes up +[1518-04-10 00:58] wakes up +[1518-07-01 23:56] Guard #1433 begins shift +[1518-08-17 00:55] wakes up +[1518-03-21 00:41] falls asleep +[1518-06-01 00:43] wakes up +[1518-04-23 00:58] wakes up +[1518-09-05 00:43] falls asleep +[1518-09-27 00:00] Guard #853 begins shift +[1518-03-04 23:47] Guard #1877 begins shift +[1518-08-15 00:40] falls asleep +[1518-08-12 00:30] falls asleep +[1518-07-12 00:34] wakes up +[1518-11-09 00:36] falls asleep +[1518-09-18 23:58] Guard #1193 begins shift +[1518-10-23 23:58] Guard #1877 begins shift +[1518-06-03 00:00] Guard #1193 begins shift +[1518-03-31 00:32] falls asleep +[1518-05-19 23:49] Guard #2719 begins shift +[1518-07-22 00:38] falls asleep +[1518-10-06 00:44] falls asleep +[1518-05-31 00:54] wakes up +[1518-03-19 00:32] falls asleep +[1518-09-09 00:50] wakes up +[1518-06-30 00:04] Guard #2011 begins shift +[1518-04-15 23:59] Guard #223 begins shift +[1518-08-28 00:29] falls asleep +[1518-07-15 00:46] wakes up +[1518-11-05 00:00] falls asleep +[1518-07-03 00:39] wakes up +[1518-05-16 00:29] falls asleep +[1518-11-15 00:17] falls asleep +[1518-10-15 00:43] wakes up +[1518-02-28 00:53] wakes up +[1518-10-26 23:46] Guard #2503 begins shift +[1518-11-21 00:31] wakes up +[1518-05-02 00:01] Guard #1877 begins shift +[1518-06-29 00:26] wakes up +[1518-08-15 00:35] wakes up +[1518-07-26 00:48] wakes up +[1518-09-06 00:29] falls asleep +[1518-10-23 00:32] falls asleep +[1518-05-02 00:50] wakes up +[1518-05-18 00:46] falls asleep +[1518-05-07 00:13] falls asleep +[1518-11-10 23:51] Guard #1949 begins shift +[1518-07-18 00:00] Guard #1657 begins shift +[1518-02-24 23:58] Guard #853 begins shift +[1518-11-12 00:52] wakes up +[1518-05-12 00:53] falls asleep +[1518-11-11 23:59] Guard #3137 begins shift +[1518-10-04 00:57] wakes up +[1518-09-14 23:49] Guard #761 begins shift +[1518-11-07 00:00] Guard #2011 begins shift +[1518-05-17 00:48] falls asleep +[1518-09-14 00:56] wakes up +[1518-07-01 00:03] falls asleep +[1518-11-02 00:46] falls asleep +[1518-03-11 00:37] wakes up +[1518-10-01 00:04] Guard #2897 begins shift +[1518-09-14 00:55] falls asleep +[1518-09-04 00:03] falls asleep +[1518-03-20 00:44] falls asleep +[1518-08-18 00:47] falls asleep +[1518-10-21 00:24] wakes up +[1518-03-29 23:58] Guard #1657 begins shift +[1518-05-04 00:51] falls asleep +[1518-02-25 00:43] wakes up +[1518-05-31 00:57] falls asleep +[1518-06-13 00:20] falls asleep +[1518-07-07 00:23] wakes up +[1518-10-25 00:50] wakes up +[1518-04-11 00:00] Guard #1949 begins shift +[1518-07-04 00:37] wakes up +[1518-07-30 00:10] falls asleep +[1518-09-03 00:40] falls asleep +[1518-04-29 00:55] falls asleep +[1518-09-13 00:34] wakes up +[1518-03-24 23:59] Guard #761 begins shift +[1518-11-08 00:42] wakes up +[1518-07-30 00:18] falls asleep +[1518-04-10 00:32] falls asleep +[1518-05-14 00:01] falls asleep +[1518-03-11 00:43] falls asleep +[1518-04-02 23:58] Guard #311 begins shift +[1518-07-05 00:32] falls asleep +[1518-03-13 00:41] wakes up +[1518-04-22 00:03] Guard #3467 begins shift +[1518-08-24 00:24] wakes up +[1518-11-22 00:45] wakes up +[1518-06-01 00:04] Guard #1129 begins shift +[1518-10-27 00:30] wakes up +[1518-10-28 00:36] wakes up +[1518-04-12 00:14] wakes up +[1518-09-05 00:58] wakes up +[1518-03-25 23:48] Guard #853 begins shift +[1518-03-01 00:33] wakes up +[1518-08-15 00:12] falls asleep +[1518-04-25 00:50] wakes up +[1518-10-17 00:51] wakes up +[1518-10-07 00:01] falls asleep +[1518-10-30 00:01] Guard #3467 begins shift +[1518-11-20 23:53] Guard #727 begins shift +[1518-03-13 00:49] falls asleep +[1518-08-22 00:58] wakes up +[1518-05-28 00:10] falls asleep +[1518-03-14 00:52] wakes up +[1518-07-05 00:13] falls asleep +[1518-07-13 00:01] Guard #1657 begins shift +[1518-08-31 23:53] Guard #727 begins shift +[1518-04-11 00:09] falls asleep +[1518-11-03 00:23] falls asleep +[1518-06-21 00:03] Guard #311 begins shift +[1518-07-02 00:47] falls asleep +[1518-06-28 00:04] Guard #853 begins shift +[1518-06-25 00:33] wakes up +[1518-03-05 00:00] falls asleep +[1518-10-16 00:00] Guard #3467 begins shift +[1518-10-31 00:28] falls asleep +[1518-06-11 00:41] falls asleep +[1518-04-12 00:09] falls asleep +[1518-07-28 00:46] falls asleep +[1518-06-05 00:24] wakes up +[1518-05-02 23:57] Guard #647 begins shift +[1518-05-30 00:01] falls asleep +[1518-11-14 00:00] Guard #2719 begins shift +[1518-03-02 00:53] wakes up +[1518-09-26 00:04] Guard #727 begins shift +[1518-10-13 00:59] wakes up +[1518-07-31 00:20] wakes up +[1518-10-11 00:47] falls asleep +[1518-03-28 00:42] falls asleep +[1518-04-26 00:32] wakes up +[1518-07-31 00:02] falls asleep +[1518-09-16 00:03] Guard #1877 begins shift +[1518-10-23 00:59] wakes up +[1518-08-31 00:53] wakes up +[1518-05-25 00:46] wakes up +[1518-10-02 00:40] wakes up +[1518-05-08 00:41] falls asleep +[1518-09-17 00:58] wakes up +[1518-08-15 00:00] Guard #1949 begins shift +[1518-08-20 00:03] Guard #223 begins shift +[1518-10-03 23:56] Guard #653 begins shift +[1518-04-12 00:02] Guard #853 begins shift +[1518-08-19 00:05] falls asleep +[1518-07-20 00:51] wakes up +[1518-09-13 00:00] Guard #853 begins shift +[1518-06-29 00:42] falls asleep +[1518-04-13 00:20] wakes up +[1518-05-23 00:26] falls asleep +[1518-03-14 00:18] falls asleep +[1518-08-17 00:13] wakes up +[1518-03-01 23:53] Guard #1877 begins shift +[1518-03-28 23:56] Guard #3467 begins shift +[1518-03-11 00:53] wakes up +[1518-04-11 00:42] wakes up +[1518-07-24 00:48] wakes up +[1518-08-18 00:03] wakes up +[1518-08-23 00:40] wakes up +[1518-08-05 23:57] Guard #1657 begins shift +[1518-05-17 00:49] wakes up +[1518-03-09 23:59] Guard #647 begins shift +[1518-05-12 00:45] wakes up +[1518-07-27 00:55] falls asleep +[1518-09-02 00:45] wakes up +[1518-09-29 00:02] Guard #311 begins shift +[1518-06-05 00:59] wakes up +[1518-09-12 00:48] wakes up +[1518-11-16 00:02] Guard #1433 begins shift +[1518-11-01 00:37] wakes up +[1518-06-26 00:10] falls asleep +[1518-06-21 00:56] falls asleep +[1518-04-30 00:00] Guard #3137 begins shift +[1518-08-12 00:02] Guard #2503 begins shift +[1518-10-07 00:10] wakes up +[1518-03-05 00:36] falls asleep +[1518-04-17 00:33] falls asleep +[1518-11-16 23:56] Guard #1657 begins shift +[1518-10-12 00:46] wakes up +[1518-03-16 00:58] wakes up +[1518-09-27 00:53] wakes up +[1518-03-20 23:58] Guard #2579 begins shift +[1518-04-26 23:59] Guard #311 begins shift +[1518-05-11 00:14] falls asleep +[1518-10-02 00:19] falls asleep +[1518-04-16 00:43] falls asleep +[1518-08-15 00:54] wakes up +[1518-08-21 00:28] wakes up +[1518-03-19 00:24] wakes up +[1518-05-24 00:14] wakes up +[1518-03-29 00:08] falls asleep +[1518-06-17 00:16] falls asleep +[1518-08-26 00:38] falls asleep +[1518-11-11 00:50] wakes up +[1518-09-13 00:25] falls asleep +[1518-08-07 00:41] falls asleep +[1518-11-16 00:59] wakes up +[1518-04-04 00:28] falls asleep +[1518-11-16 00:50] falls asleep +[1518-04-01 00:25] falls asleep +[1518-10-03 00:00] falls asleep +[1518-06-16 00:10] falls asleep +[1518-08-16 00:44] falls asleep +[1518-05-30 23:59] Guard #2503 begins shift +[1518-05-25 00:15] falls asleep +[1518-06-22 00:45] falls asleep +[1518-10-17 00:06] falls asleep +[1518-03-14 23:57] Guard #2503 begins shift +[1518-05-06 00:00] falls asleep +[1518-10-16 23:57] Guard #2719 begins shift +[1518-06-08 00:04] Guard #2719 begins shift +[1518-04-16 23:58] Guard #2579 begins shift +[1518-09-04 23:56] Guard #2011 begins shift +[1518-06-18 00:25] falls asleep +[1518-04-05 00:42] wakes up +[1518-08-18 00:50] wakes up +[1518-10-09 00:21] falls asleep +[1518-07-30 00:14] wakes up +[1518-09-19 00:52] wakes up +[1518-07-22 00:02] Guard #1129 begins shift +[1518-05-26 00:59] wakes up +[1518-08-10 00:49] wakes up +[1518-10-21 00:20] falls asleep +[1518-06-01 00:57] wakes up +[1518-10-10 00:03] Guard #311 begins shift +[1518-05-31 00:38] falls asleep +[1518-08-21 00:56] wakes up +[1518-10-03 00:33] falls asleep +[1518-10-08 00:59] wakes up +[1518-08-02 00:49] wakes up +[1518-09-03 23:50] Guard #1129 begins shift +[1518-05-02 00:39] wakes up +[1518-08-26 00:06] falls asleep +[1518-09-22 00:18] falls asleep +[1518-11-05 00:58] wakes up +[1518-07-04 00:01] Guard #1657 begins shift +[1518-06-30 00:45] falls asleep +[1518-02-28 23:56] Guard #727 begins shift +[1518-07-18 00:34] wakes up +[1518-06-06 23:58] Guard #2503 begins shift +[1518-03-05 23:57] Guard #761 begins shift +[1518-08-11 00:01] Guard #2503 begins shift +[1518-03-13 00:55] wakes up \ No newline at end of file diff --git a/2018/day-4/processed_input b/2018/day-4/processed_input new file mode 100644 index 0000000..62c3a7a --- /dev/null +++ b/2018/day-4/processed_input @@ -0,0 +1,17 @@ +[1518-11-01 00:00] Guard #10 begins shift +[1518-11-01 00:05] falls asleep +[1518-11-01 00:25] wakes up +[1518-11-01 00:30] falls asleep +[1518-11-01 00:55] wakes up +[1518-11-01 23:58] Guard #99 begins shift +[1518-11-02 00:40] falls asleep +[1518-11-02 00:50] wakes up +[1518-11-03 00:05] Guard #10 begins shift +[1518-11-03 00:24] falls asleep +[1518-11-03 00:29] wakes up +[1518-11-04 00:02] Guard #99 begins shift +[1518-11-04 00:36] falls asleep +[1518-11-04 00:46] wakes up +[1518-11-05 00:03] Guard #99 begins shift +[1518-11-05 00:45] falls asleep +[1518-11-05 00:55] wakes up \ No newline at end of file diff --git a/2018/day-4/python/main.py b/2018/day-4/python/main.py new file mode 100644 index 0000000..1080691 --- /dev/null +++ b/2018/day-4/python/main.py @@ -0,0 +1,97 @@ +import time, re, datetime, pprint, process_input + +# Returns processed input, simple script for creating a chronologically ordered input file. +data = process_input.process() + +# Comment this out to use real puzzle data +# import sys, os +# path = os.path.join(sys.path[0], '..', 'processed_input') +# data = open(path, 'r').read().split('\n') + +# Pattern Constants & pprint +pprint = pprint.PrettyPrinter(width=1000).pprint +timepattern = r"\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2})\](.+)" +guard_id_pattern = r"Guard #(\d+) begins shift" +strptimepattern = "%Y-%m-%d %H:%M" + +class GuardData: + def __init__(self, quiet=False): + self.quiet = quiet + self.guards = {} + + # Grabs the guard with the best singular minute + def best_minute(self): + # Finds the guard based on the guard's most slept minute + guard = max(self.guards.items(), key=lambda item : max(enumerate(item[1]['minutes']), key=lambda minute : minute[1])) + # Return the guard selected's best minute and the minute count and the id of the guard. + return guard[0], max(enumerate(guard[1]['minutes']), key=lambda item : item[1]) + + # Returns the guard item with the highest total + def best_total(self): + best = max(self.guards.items(), key=lambda item : item[1]['total']) + return best[0], best[1]['total'] + + # Returns the minute the guard selected was asleep the most, along with how much + def guard_best_minute(self, id): + return max(enumerate(self.guards[id]['minutes']), key=lambda item : item[1]) + + # Simply ensures the guard exists. + # Otherwise, it will initalize a guard with the id. + def ensure_exists(self, id): + if id in self.guards.keys(): + return + else: + self.guards[id] = { + 'total' : 0, + 'minutes' : [0 for i in range(60)] + } + + # ID, Time Point 1, Time Point 2, Type + def add_sleep_time(self, id, t1, t2): + self.ensure_exists(id) + minutes = (t2 - t1) // datetime.timedelta(minutes=1) + print(f'Guard #{id} slept for {minutes} minutes from \'{t1}\' to \'{t2}\'') + # print('id-{} : {}mins : {} --> {}'.format(id, minutes, t1, t2)) + for minute in range(minutes): + self.guards[id]['minutes'][( t1.minute + (minute % 60) ) % 60] += 1 + self.guards[id]['total'] += minutes + +guard_data = GuardData(quiet=True) +current_guard = None +current_action = None +last_timechange = None + +for line in data: + match = re.match(timepattern, line) + time = datetime.datetime.strptime(match.group(1), strptimepattern) + action = match.group(2).strip() + + # Detect whether the most recent change is a guard change + is_guard_change = re.match(guard_id_pattern, action) + if is_guard_change: + current_guard = int(is_guard_change.group(1)) + last_timechange = time + current_action = None + # Ignore if status has not changed + elif action != current_action: + if action == 'falls asleep': + pass + elif action == 'wakes up' and current_action == 'falls asleep': + guard_data.add_sleep_time(current_guard, last_timechange, time) + else: + print('Unknown Action : \'{}\''.format(action)) + current_action = action + last_timechange = time + + +id, total = guard_data.best_total() +minute, minute_count = guard_data.guard_best_minute(guard_data.best_total()[0]) +print(f'\nGuard {id} slept the most for a total of {total} minutes.') +print(f'Guard {id} slept the most during minute {minute} a total of {minute_count} times.') +p1 = id * minute + +id, (minute, minute_count) = guard_data.best_minute() +print(f'Guard {id} spent minute {minute} the most @ {minute_count} times.') +p2 = id * minute + +print(f'\nPart 1 solution: {p1}\nPart 2 solution: {p2}') \ No newline at end of file diff --git a/2018/day-4/python/process_input.py b/2018/day-4/python/process_input.py new file mode 100644 index 0000000..8aad0eb --- /dev/null +++ b/2018/day-4/python/process_input.py @@ -0,0 +1,14 @@ +import sys, os, re, datetime + +# Patterns for Regex and STRPTIME function +timepattern = r"\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2})\](.+)" +strptimepattern = "%Y-%m-%d %H:%M" + +def getDateTime(string): + return datetime.datetime.strptime(re.match(timepattern, string).group(1), strptimepattern) + +def process(): + newpath = os.path.join(sys.path[0], '..', 'processed_input') + path = os.path.join(sys.path[0], '..', 'input') + data = open(path, 'r').read().split('\n') + return sorted(data, key=getDateTime) \ No newline at end of file