Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
lambda and cast...weird. solution in Creative category for Pawn Brotherhood by alterGNU
def can_be_replace_by(target: str, backup: set) -> bool:
"""
if the pawns 'target' can be replace by another one (in set backup) :
- then return True
- else, return False
"""
up = lambda mot : str(mot)[0] + str(int(str(mot)[1])+1)
left = lambda mot : chr(ord(str(mot)[0])-1) + str(mot)[1]
right = lambda mot : chr(ord(str(mot)[0])+1) + str(mot)[1]
for pawn in backup:
if target == left(up(pawn)) or target == right(up(pawn)):
return True
return False
def safe_pawns(pawns: set) -> int:
return sum([ can_be_replace_by(x,pawns-{x}) for x in pawns ])
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!")
May 7, 2021