Solution to problem 2 part 2 in Python
This commit is contained in:
parent
5866f7aed3
commit
bb75d1b0fd
42
src/P2.py
42
src/P2.py
@ -51,5 +51,47 @@ def part_1() -> None:
|
||||
print(f"There are {correct_passwds} valid passwords in the database")
|
||||
|
||||
|
||||
# --- Part Two ---
|
||||
|
||||
# While it appears you validated the passwords correctly, they don't seem to be
|
||||
# what the Official Toboggan Corporate Authentication System is expecting.
|
||||
|
||||
# The shopkeeper suddenly realizes that he just accidentally explained the
|
||||
# password policy rules from his old job at the sled rental place down the
|
||||
# street! The Official Toboggan Corporate Policy actually works a little
|
||||
# differently.
|
||||
|
||||
# Each policy actually describes two positions in the password, where 1 means
|
||||
# the first character, 2 means the second character, and so on. (Be careful;
|
||||
# Toboggan Corporate Policies have no concept of "index zero"!) Exactly one of
|
||||
# these positions must contain the given letter. Other occurrences of the
|
||||
# letter are irrelevant for the purposes of policy enforcement.
|
||||
|
||||
# Given the same example list from above:
|
||||
|
||||
# 1-3 a: abcde is valid: position 1 contains a and position 3 does not.
|
||||
# 1-3 b: cdefg is invalid: neither position 1 nor position 3 contains b.
|
||||
# 2-9 c: ccccccccc is invalid: both position 2 and position 9 contain c.
|
||||
|
||||
# How many passwords are valid according to the new interpretation of the
|
||||
# policies?
|
||||
|
||||
|
||||
def part_2() -> None:
|
||||
correct_passwds = 0
|
||||
for passwd in passwds:
|
||||
pos1, pos2 = passwd[0].split("-")
|
||||
checks = 0
|
||||
if passwd[2][int(pos1) - 1] == passwd[1][:-1]:
|
||||
checks += 1
|
||||
if passwd[2][int(pos2) - 1] == passwd[1][:-1]:
|
||||
checks += 1
|
||||
if checks == 1:
|
||||
correct_passwds += 1
|
||||
|
||||
print(f"There are {correct_passwds} valid passwords in the database")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
part_1()
|
||||
part_2()
|
||||
|
Loading…
Reference in New Issue
Block a user