Skip to content

Conversation

@suhwan2004
Copy link
Collaborator

문제

m, n은 matrix의 행, 열의 길이

Type Info
Time Complexity O((m*n)^2)
Space Complexity O(m*n)
Algorithm BFS, for
Data Structure array, hash set

Constraints

  • m == matrix.length
  • n == matrix[0].length
  • 1 <= m, n <= 200
  • -2^31 <= matrix[i][j] <= 2^31 - 1

Edge Case

x

풀이

  1. matrix의 행열을 for을 두번해서 돈다

  2. 만약, 값이 0인 행열 인덱스를 발견하면 상하좌우 4번을 for로 돌며 그 내부에서
    한번도 안 갔고, 인덱스가 유효한지 체킹하고 맞다면 visited에 현재 위치값을 저장하고, arr에 현재 위치 정보를 배열로 저장한다
    => 이미 같은 방향으로 같은 지점을 들렸다면 bfs를 돌면서 더 0으로 바꾸는 행위를 할 필요 없기에 해당 조건을 체킹

  3. while을 arr가 0이 될 때까지 돌며,

    • 계속 arr의 인덱스 0의 요소를 빼낸다
    • 다음으 가는 행과 열 인덱스를 생성한다.
    • 현재 matrix[열][행] 인덱스의 요소값은 0으로 변경한다.
    • 한번도 안 갔고, 인덱스가 유효한지 체킹하고 맞다면 visited에 행,열,방향값을 저장한다,
  4. 3의 과정이 끝난 이후, 변경된 matrix를 return 한다

어려웠던 점

처음에 visited 저장 안 하다가 한번 꼬여서 시간이 더 걸렸던 것 같습니다

알게된 점

x

@suhwan2004 suhwan2004 force-pushed the suhwan2004/set-matrix-zeroes branch from 7c55aae to 7f6de10 Compare January 3, 2025 15:40
@github-actions github-actions bot enabled auto-merge (squash) January 12, 2025 01:39
@github-actions github-actions bot merged commit f9407c7 into main Jan 12, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants