diff --git a/cpp/number-of-laser-beams-in-a-bank.cpp b/cpp/number-of-laser-beams-in-a-bank.cpp new file mode 100644 index 0000000..c9bebc2 --- /dev/null +++ b/cpp/number-of-laser-beams-in-a-bank.cpp @@ -0,0 +1,21 @@ +#include +#include +#include + +class Solution { +public: + int numberOfBeams(const std::vector& bank) { + int beams = 0; + + int last_row = 0; + for (const auto& row : bank) { + if (auto current_row = std::count(row.begin(), row.end(), '1'); current_row != 0) { + beams += last_row * current_row; + last_row = current_row; + } + } + + return beams; + } +}; +