• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

우측, 위쪽 방향에만 조건을 걸어주는 이유

20.12.29 07:53 작성 조회수 143

1

왜 좌측방향 아래방향 갈때는 조건을 안걸어 주고, 우측방향 위쪽방향 갈때만 조건을 걸어주는건가요?

구체적으로 설명을 해주셨으면 합니다

답변 3

·

답변을 작성해보세요.

1

그리고 예제는 아래 꺼로 해보세요~

int[][] nums = { { 1, 2, 3, 4 },

                 { 5, 6, 7, 8 }, 

                 { 9, 10, 11, 12 } };

1

아 그리고 첨언하면, 처음에 들어올때 와일문에서 이미 범위 체크를 했는데 왜 내부에서 또 하느냐라고 반문할수 있는데요

while (rowStart <= rowEnd && colStart <= colEnd) {

               이 내부에서 rowStart 가 rowEnd 보다 크게 되는 경우가 발생합니다. 그거를 걸러주는겁니다.

}

이런류의 내부체크 로직은 아주 중요하고 dfs, bfs도 내부에서 범위체크를 해줍니다. 비슷한 방법으로합니다.

이걸 잘 이해하면 bfs/dfs문제를 쉽고 빠르게 풀어 낼수 있습니다~황이팅

1

안녕하세요.~~ 반갑습니다~~

글로 쓰니까 너무 읽기가 불편해서 그림을 그려봤습니다.

아래 그림 5,6 번 빨간색을 잘 보시면 됩니다. 좌표를 그려보시고요, 항상 범위체크는 해줘야 합니다.

5,6번에서 값이 오버된 상태입니다. 밑에 우측, 위쪽 방향 갈때 이 조건을 걸러 줘야 합니다

요약하면 RowStart는 절대 RowEnd보다 클수 없습니다.