파이터라는 이진 목록과 보스라는 이진 목록의 또 다른 목록이 있다고 가정합니다. 전투기 목록에서 1은 전투기를 나타냅니다. 유사하게, bosses 목록 1에서 보스를 나타냅니다. 그 파이터는 보스보다 파이터가 더 많은 경우 보스의 행을 이길 수 있습니다. 패배한 보스 행이 제거된 새로운 보스 매트릭스를 반환해야 합니다.
따라서 입력이 전투기와 같은 경우 =[0,1,1]
0 | 1 | 1 |
0 | 0 | 0 |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
그러면 출력은
0 | 1 | 1 |
1 | 1 | 1 |
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
Fighter_cnt :=전투기의 모든 요소의 합
-
결과 :=새 목록
-
보스의 각 행에 대해 수행
-
Fighter_cnt <=행에 있는 각 요소의 합계인 경우
-
결과 끝에 행 삽입
-
-
-
반환 결과
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, fighters, bosses): fighter_cnt = sum(fighters) result = [] for row in bosses: if fighter_cnt <= sum(row): result.append(row) return result ob = Solution() fighters = [0, 1, 1] bosses = [[0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1]] print(ob.solve(fighters, bosses))
입력
[0, 1, 1], [[0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1]]
출력
[[0, 1, 1], [1, 1, 1]]