Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
named solution in Clear category for Pawn Brotherhood by MrLite
def safe_pawns(pawns: set) -> int:
def is_safe(pos):
prev_letter, next_letter = chr(ord(pos[0]) - 1), chr(ord(pos[0]) + 1)
prev_number = str(int(pos[1]) - 1)
left_back, right_back = prev_letter + prev_number, next_letter + prev_number
return left_back in pawns or right_back in pawns
is_safe_list = [is_safe(pawn) for pawn in pawns]
return sum(is_safe_list)
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert safe_pawns({"b4", "d4", "f4", "c3", "e3", "g5", "d2"}) == 6
assert safe_pawns({"b4", "c4", "d4", "e4", "f4", "g4", "e5"}) == 1
print("Coding complete? Click 'Check' to review your tests and earn cool rewards!")
Jan. 18, 2020