오늘의 주제는 이분탐색
[Count Negative Numbers in a Sorted Matrix]
문제
입력과 출력
코드
class Solution:
def countNegatives(self, grid: List[List[int]]) -> int:
cnt=0
for i in range(len(grid)):
for j in range(len(grid[i])):
if grid[i][j]<0:
cnt+=1
return cnt
이중 반복문으로 2차원배열을 돌면서
값이 0보다 작을 때, cnt를 1씩 더해주어
마지막에는 cnt를 반환해준다.
처음 코드를 구현했을 때 시간은 얼마 걸리지 않았다.
그러나 런타임이 111초로 꽤 긴편이였고,
어제 배웠던 이진 탐색으로 풀어야하나? 라는 생각을 해서
새로운 코드를 도전해봤다.
다른 이진 탐색 코드를 참고하여 구현한 것
런타임이 줄긴 했지만 생각보다 큰 차이가 없다는 점이 아쉬웠다.. ㅜㅜ
스터디 톡방에서 들어보니 이진탐색과 완전탐색을 적절하게 섞어야 한다고 하시는데 ,,
이진 탐색을 접하지 얼마 되지 않은 나에게는 적절한 아이디어가 떠오르지 않았다,,
이번 문제는 조금 더 고민해서 디벨롭이 필요해보인다
주말에 다시 풀어보고 좋은 풀이가 나오면 다시 수정하도록 하겠다 ㅎ..