[][src]Function codetrotter_aoc_2019_solutions::day_04::solve_part_1

pub fn solve_part_1(input_range: &DigitsNeverDecreasingRange) -> usize

Day 4: Secure Container

https://adventofcode.com/2019/day/4

You arrive at the Venus fuel depot only to discover it's protected by a password. The Elves had written the password on a sticky note, but someone threw it out.

However, they do remember a few key facts about the password:

  • It is a six-digit number.
  • The value is within the range given in your puzzle input.
  • Two adjacent digits are the same (like 22 in 122345).
  • Going from left to right, the digits never decrease; they only ever increase or stay the same (like 111123 or 135679).

Other than the range rule, the following are true:

  • 111111 meets these criteria (double 11, never decreases).
  • 223450 does not meet these criteria (decreasing pair of digits 50).
  • 123789 does not meet these criteria (no double).

How many different passwords within the range given in your puzzle input meet these criteria?

Examples

use codetrotter_aoc_2019_solutions::day_04::{input_generator, solve_part_1};
assert_eq!(solve_part_1(&input_generator("111111-111111")), 1);
assert_eq!(solve_part_1(&input_generator("223450-223450")), 0);
assert_eq!(solve_part_1(&input_generator("123789-123789")), 0);

Solution

⚠️ SPOILER ALERT ⚠️

use codetrotter_aoc_2019_solutions::day_04::{INPUT, input_generator, solve_part_1};
assert_eq!(solve_part_1(&mut input_generator(INPUT)), 1099);