Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Speedy category for Pawn Brotherhood by PelmenFloopov
def safe_pawns(pawns: set[str]) -> int:
result = 0
for pawn in pawns:
# If there is another pawn behind-left or behind-right this pawn
if (chr(ord(pawn[0]) - 1) + chr(ord(pawn[1]) - 1) in pawns) \
or (chr(ord(pawn[0]) + 1) + chr(ord(pawn[1]) - 1) in pawns):
result += 1
return result
print("Example:")
print(safe_pawns({"b4", "d4", "f4", "c3", "e3", "g5", "d2"}))
assert safe_pawns({"f4", "d4", "e3", "b4", "g5", "d2", "c3"}) == 6
assert safe_pawns({"f4", "c4", "b4", "e4", "g4", "d4", "e5"}) == 1
print("The mission is done! Click 'Check Solution' to earn rewards!")
Feb. 5, 2024
Comments: