; potholes
(define (potholes str)
(let ((len (string-length str)))
(let loop ((i 0) (fixes 0))
(cond ((<= len i) fixes)
((char=? (string-ref str i) #\X)
(loop (+ i 3) (+ fixes 1)))
(else (loop (+ i 1) fixes))))))
(display (potholes ".X.")) (newline)
(display (potholes ".X...X")) (newline)
(display (potholes "XXX.XXXX")) (newline)
(display (potholes ".X.XX.XX.X")) (newline)
OyBwb3Rob2xlcwoKKGRlZmluZSAocG90aG9sZXMgc3RyKQogIChsZXQgKChsZW4gKHN0cmluZy1sZW5ndGggc3RyKSkpCiAgICAobGV0IGxvb3AgKChpIDApIChmaXhlcyAwKSkKICAgICAgKGNvbmQgKCg8PSBsZW4gaSkgZml4ZXMpCiAgICAgICAgICAgICgoY2hhcj0/IChzdHJpbmctcmVmIHN0ciBpKSAjXFgpCiAgICAgICAgICAgICAgKGxvb3AgKCsgaSAzKSAoKyBmaXhlcyAxKSkpCiAgICAgICAgICAgIChlbHNlIChsb29wICgrIGkgMSkgZml4ZXMpKSkpKSkKCihkaXNwbGF5IChwb3Rob2xlcyAiLlguIikpIChuZXdsaW5lKQooZGlzcGxheSAocG90aG9sZXMgIi5YLi4uWCIpKSAobmV3bGluZSkKKGRpc3BsYXkgKHBvdGhvbGVzICJYWFguWFhYWCIpKSAobmV3bGluZSkKKGRpc3BsYXkgKHBvdGhvbGVzICIuWC5YWC5YWC5YIikpIChuZXdsaW5lKQ==