inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Các khái niệm và vấn đề bạn phải biết trước khi thi viết code (với Java)

Diện tích tối đa của đảo BFS

면적을 구하는 res를 for문 내에 있는 if문 안에 넣으면 되지 않나요?

Đã giải quyết

311

devJR

3 câu hỏi đã được viết

1

- 안녕하세요 선생님

강의 잘 듣고 있습니다^-^

덕분에 코테는 벌벌 떨던 제가 BFS랑 DFS에 대해서 이런거였어? 싶을 정도로 쉽게 이해하고 있는 중입니다

감사합니다 ㅎㅎ

 

다름이 아니라 9:03 초에서 res를 while문 안에 작성하셨는데요

그렇게 되면 큐에 들어온 녀석 갯수만큼 추가 되면서

선생님이 뒤에 말씀하신 것처럼 최초 진입 시점의 갯수도

포함하게 되어서 최초 진입시점에도

grid[x][y] = 0 값을 넣게 되는데요

 

애초에 들어오고 나서 for문 내의 if문에서 방문했다(visited)라고 하는 조건 내에서 면적을 추가 시켜 주면

그러한 작업이 필요 없을 거 같아서요

 

아래 예시인데요..

일단 값은 잘 나오는 지 테스트 해봤는데

이 부분은 어떻게 생각하시는지 궁금합니닷

(혹시 틀렸다면 알려주세요 ㅠㅜ..)

 private int bfs(int[][] grid, int x, int y) {
        Queue<int[]> queue = new LinkedList<>();
        queue.offer(new int[] {x, y});  //0, 0
        int area = 0;
        while (!queue.isEmpty()) {
            int[] point = queue.poll();
            for (int[] dir : dirs) {
                int findX = point[0] + dir[0];
                int findY = point[1] + dir[1];
                if (findX >= 0 && findY >= 0 && findX < m && findY < n
                        && grid[findX][findY] == 1) {
                    grid[findX][findY] = 0;
                    queue.offer(new int[] {findX, findY});
                    area++;
                }
            }
        }

        return area;
    }

java 코테 준비 같이 해요!

Câu trả lời 1

1

pushupman

devJR 안녕하세요~~!!

 

네 맞습니다. 좋은 의견 주셔서 감사합니다.

area++를 아래 적어주신것처럼 에러 체크 조건안에 넣어두면 더 확실합니다. 

실제 코딩시험에서는 변형해서 문제를 내죠.  devJR 처럼 확실히 생각한것을 코딩하는게 정답이죠

요새 코딩시험은 외워서 하는게 거의 불가능하고 조금씩 변경하기 때문에 코딩할때 항상 

기준을 잡고 코딩하시면 되겠씁니다

감사합니다~~

 

 if (findX >= 0 && findY >= 0 && findX < m && findY < n
                        && grid[findX][findY] == 1) {
                    grid[findX][findY] = 0;
                    queue.offer(new int[] {findX, findY});
                    area++;
                }

 

질문 드립니다!

1

249

1

PriorityQueue

1

337

1

강의에 있는 자료구조만 공부하면 되나요??

1

229

1

bfs, dfs 강의 자료

1

241

1

문제가 이해가 안가요

1

323

1

만약 문자열이 매칭되는 조건("arrest", "test")이 문자열의 인덱스 기준 뒤에서부터 발생하면 어떻게 풀어야할까요?

2

434

1

그림이 잘 이해되지 않습니다.

1

182

1

어떤 문제인지에 대한 설명이 없어서 이해가 안가네요;;

1

300

3

강사님 문제가 잘 이해가 안가요

3

180

1

merge함수 질문 있습니다.

1

226

1

dp 강의자료 어딧어요??

1

379

2

응용문제4) DFS 응용문제 질문이요!

1

161

1

Dp HouseRobber 질문

1

222

1

DP 1분 간단 영상이 보이지 않습니다.

1

285

1

스택 문제 영상이 추가적으로 들어갔습니다.

1

158

1

list 질문입니다

2

189

1

DP문제 문의

1

237

2

Comparator 질문입니다.

1

468

2

안녕하세요. 질문입니다.

1

262

1

BFS 게임 맵 최단거리 문의

1

328

3

코딩테스트 처음 입문 했는데 질문이 있습니다.

1

153

1

안녕하세요. 수강생입니다. 이 강의만 전부 소스 보낼 수 있을까요?

1

159

1

추가 강의 문의.

1

367

3

개념 설명이 잘못나온거 같습니다.

1

157

1