2125. Number of Laser Beams in a Bank

  • 은행에 λ³΄μ•ˆ κΈ°κΈ°λ₯Ό λ°°μΉ˜ν•˜μ˜€μ„ λ•Œ μ„œλ‘œ λ‹€λ₯Έ 은행 간에 μ—°κ²°λ˜λŠ” λ ˆμ΄μ € λΉ”μ˜ 개수λ₯Ό λ§žμΆ”λŠ” 문제.
  • 각 λ¬Έμžμ—΄μ€ 은행을 μ˜λ―Έν•˜λ©° λ³΄μ•ˆ κΈ°κΈ°κ°€ λ°°μΉ˜λ˜μ—ˆλ‹€λ©΄ 1, μ•„λ‹ˆλΌλ©΄ 0으둜 ν‘œν˜„λœλ‹€.
  • λ³΄μ•ˆ κΈ°κΈ°κ°€ 적어도 ν•˜λ‚˜ 이상 배치된 μ„œλ‘œ λ‹€λ₯Έ 은행에 λŒ€ν•΄μ„œ λ ˆμ΄μ € λΉ”μ˜ μˆ˜λŠ” 각 μ€ν–‰μ˜ λ³΄μ•ˆ κΈ°κΈ° 개수의 곱이 λœλ‹€.
  • λ˜ν•œ λ³΄μ•ˆ κΈ°κΈ°κ°€ 적어도 ν•˜λ‚˜ 이상 배치된 μ—°μ†λœ 두 은행 κ°„μ—λ§Œ λ ˆμ΄μ € 빔이 λ°œμƒν•˜λ―€λ‘œ 쀑간에 λ³΄μ•ˆ κΈ°κΈ°κ°€ λ°°μΉ˜λ˜μ§€ μ•Šμ€ 은행은 λ¬΄μ‹œν•˜λ©΄ λœλ‹€.
class Solution { public int numberOfBeams(String[] bank) { int result = 0; int prev = 0; for (String s : bank) { int curr = 0; for (int i = 0; i < s.length(); ++i) { if (s.charAt(i) == '1') ++curr; } if (curr == 0) continue; result += prev * curr; prev = curr; } return result; } }