inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편

알고리즘 수업 - 깊이 우선 탐색 2 (백준 24480)

질문이 있습니다. dfs 메서드에 order를 이렇게 구현하면 안되는 이유가 무엇인가요?

해결된 질문

134

김예현

작성한 질문수 3

0

image.png

이렇게 구현한 경우, 틀렸다고 나오는데,
ide로 돌리고 출력해보면
1
4
3
2
0

으로 정상 출력되는데.. 이유를 모르겠습니다ㅠㅠ!

java 코딩-테스트 알고리즘 dfs

답변 2

1

개발자로 취직하기

안녕하세요 예현님 🙂 코드를 스크린샷 말고 코드 블럭으로 공유 부탁드립니다!

공유해주시는 대로 확인해보겠습니다~

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 김예현님께서 질문해주신 DFS 메서드 구현과 관련된 문제가 있다는 내용 잘 보았습니다. 이 경우 IDE에서는 정상적으로 실행되지만 특정 환경(예: 백준)에서 오류가 발생하는 경우가 많습니다. 여기서는 몇 가지 가능성 있는 원인과 해결책을 알려드리겠습니다.

  1. 입출력 처리: 백준과 같은 경쟁 프로그래밍 플랫폼에서는 표준 입력과 출력이 정확히 요구된 형식으로 처리가 되어야 합니다. IDE에서는 기본적으로 프로그램이 연속된 데이터 스트림을 잘 처리하지만, 백준은 매우 엄격한 형식이 요구될 수 있습니다. 따라서, 코드 내의 입력 및 출력 처리를 재점검하는 것이 좋습니다.

  2. 인덱스 범위: 배열이나 리스트에 접근할 때, 범위를 벗어나는 인덱스를 참조할 경우 문제가 발생할 수 있습니다. 특히, DFS에서 많은 재귀 호출이 있을 때 인덱스 초기화가 올바르게 되어 있어야 합니다. 위 코드에서 order의 초기화 및 증가가 적절히 관리되었는지도 확인해보세요.

  3. 갱신 순서: DFS 트리를 구성하면서 order 값을 제대로 갱신하지 않거나 잘못된 기준으로 업데이트하고 있을 수 있습니다. 특히 재귀함수 내에서 노드 방문 시 order 값이 모든 경로에서 일관되게 증가하지 않는 경우 예상치 못한 결과가 발생할 수 있습니다.

  4. 환경 차이: IDE에서는 실행 환경의 차이(메모리, 스택 크기 제한 등)로 인해 로컬에서는 문제가 없지만, 실서버(백준 등)에서는 실행되지 않을 수 있습니다. 특히 재귀 깊이 제한이 다를 수 있으니 StackOverflowError 등 재귀 깊이와 관련된 문제는 없는지 점검해보세요.

유사한 문제에 대한 기존 답변이나 해결 방법을 찾는 것이 도움이 될 수 있습니다. 아래의 유사한 게시물들을 참고해보세요:

  • 널 포인터 에러: Java에서 그래프 관련 DFS 알고리즘을 구현할 때 발생하는 널 포인터 예외를 다룬 문제입니다. DFS 구성과 재귀 호출 과정에서의 오류 처리에 대해 힌트를 얻을 수 있습니다.

이 정보를 바탕으로 코드 로직을 조금 더 면밀하게 확인하고 테스트해 보시면 좋겠습니다. 문제를 해결하는 데 도움이 되길 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dfs 부문을 이렇게 작성해도 되나요?

1

74

1

x랑 y를 거꾸로 쓰는 개념이 너무 헷갈립니다...

1

96

2

dfs 파라미터에 count를 넣는이유

1

64

2

graph 채울때 for문 설계 질문

1

72

2

질문있습니다.

1

74

1

다른 강의 언제나오나용?

1

93

2

노드간 거리 계산

1

145

1

안녕하세요, 혹시 다른문제도 여쭤볼 수 있을까요?

1

130

1

최근에 올린 질문, 코드블럭으로 공유드립니다!

1

143

1

깊이우선탐색2 백준 24480 수업노트에...

1

119

1

백준 24479 문제 제출 결과 "틀렸습니다" 라고만 나와서 어떤 부분이 틀렸는지 잘 모르겠어요 피드백 부탁드립니다

1

250

3

graph 만들때 boolean[][] 으로 만드는 경우랑 int[][] 나 ArrayList<Integer>[] 로 만드는 기준이 어떻게 되나요?

1

202

2

graph를 2차원 배열 또는 List로 하는 기준을 어떤식으로 잡으면 좋을까요...?

1

224

1

강사님 안녕하세요! 깊이 우선 탐색 2 (백준 24480)에서 제공하는 풀이 코드에서 궁금한 점이 있어서 질문 드립니다!

1

327

3

촌수 계산

1

354

3

연결 요소의 개수 (백준 11724)

1

267

1

백준 24479 문제 시간 초과 질문 드려요

1

382

1

백준 실행시 틀립니다.

1

372

1

재귀대신 스택으로 구현하면 안될까요?

1

409

1

dfs 매개변수에서 y,x 를 왜 순서를 반대로 쓰셨는지 궁금합니다.

1

371

1

안녕하세요 11724번 질문드려요!

2

315

1

출력할 때 BufferedWriter? StringBuilder?

1

510

1

answer++ 위치 질문

1

256

1

code의 어디가 잘못된지 도저히 모르겠습니다..

1

271

1