inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

3-D와 반례

3-D 불 코드 질문합니

해결된 질문

80

이정재

작성한 질문수 9

0

안녕하세요 큰돌님.
제가 강의 보기 전에 짰던 코드인데 각각의 bfs 를 번갈아 가면서 시도하는 코드입니다. 메모리 초과 오류가 납니다.
http://boj.kr/83dab6d47b9a4dc7b6270cd88a755aea

 

  1. 벽은 불에 안타는 조건인지

  2. 제 생각은 불이 여러 개 주어진 경우, 그 불 간의 최단 시간으로 배열을 바꿔야 할 거 같은데 이런 경우는 없는지도 궁금합니다!

c++ 코딩-테스트

답변 3

0

큰돌

안녕하세요 정재님 ㅎㅎ

먼저 사람부터 짜게 되면 -> 사람이 불이 없는 것을 기반으로 이동경로가 설정되기 때문에 이상하게 로직이 생길 수 있습니다. 예를 들어 사람 -> . -> 불 이렇게 되어있는데 사람은 불 이부분과는 무관하게 사람 -> 사람 -> 사람 이렇게 이동하게 되어버려서 로직이 꼬여버리게 됩니다.

 

또한..

if (visited_F[ny][nx] > 0 && visited_F[ny][nx] < visited_F[y][x] + 1) {

이거는 이렇게 하신이유가 있을까요?

BFS로 하게 되면 어차피 visited_F는 최단거리가 적용이 되서 해당 부분은 필요없는 것 같습니다.

 

감사합니다.

 

0

큰돌

안녕하세요 정재님 ㅎㅎ

코드 공유 부탁드립니다.

0

이정재

수정했습니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

이정재님, “3-D 불” 문제에서 메모리 초과가 발생한다고 하셨군요. 메모리 초과 오류는 주로 아래의 원인들로 인해 발생할 수 있습니다:

  1. 비효율적인 BFS 구현: BFS(너비 우선 탐색)에서 큐에 지나치게 많은 데이터를 삽입할 경우, 메모리 초과가 발생할 수 있습니다. 특히, 큐에 중복된 데이터가 들어가거나 방문한 노드를 다시 방문하려는 경우가 이런 상황을 유발할 수 있습니다.

  2. 전역 변수 및 배열: 너무 큰 배열을 사용하거나 초기화가 적절하지 않으면 메모리 사용량이 증가합니다. 배열의 크기를 문제에서 주어진 범위에 맞춰 적절히 설정하는 것이 중요합니다.

  3. 반복적인 BFS 호출: 불과 관련된 여러 출발지를 가지고 BFS를 반복해서 호출할 경우 메모리 사용량이 급증할 수 있습니다. 이 경우 모든 불의 위치를 시작점으로 처리해 한번의 BFS로 해결할 수 있도록 코드 개선이 필요할 수 있습니다.

관련된 문제에서 발생한 메모리 초과 오류를 해결한 유사한 사례들을 참고하시면 도움이 될 것 같습니다. 여기에 해당 질문과 해결 방법을 찾을 수 있는 링크를 제공드립니다:

  1. 3-D 불! 메모리 초과 질문 있습니다.

    • 기존의 코드에서 불의 위치를 효율적으로 처리하는 방법을 다룹니다.
  2. 3-D 메모리초과 질문있습니다

    • 메모리 사용을 줄이며 BFS를 효율적으로 수행하는 방법에 대해 설명합니다.

각 링크의 답변을 통해 BFS 구현을 최적화하는 방법을 학습해 보세요. 오류 해결에 도움이 되기를 바랍니다.

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

2주차 개념#12 트리 순회

0

13

2

백준사이트가 종료된다고 합니다.

0

214

2

백준 서비스 종료

9

674

1

sk 하이닉스 코테 대비

0

349

2

3-G 최댓값 질문

0

46

1

모듈러 연산 값이 10이 아닌 경우도 있지 않나요?

0

81

2

3-I 코드 질문드립니다.

0

60

2

3-N 질문 있습니다.

0

63

2

학습방법

0

99

2

4-H 질문 있습니다 (코드 리뷰)

0

66

2

코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.

0

162

2

2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.

0

69

2

2주차 개념 #4-2. 인접행렬 질문있습니다.

0

63

2

1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.

0

48

2

조합 재귀 풀이 확인 해주시면 감사하겠습니다.

0

67

2

함수별 시간복잡도

0

71

2

3-h 질문입니다.

0

48

1

안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.

0

51

2

1-I 문제 질문 드립니다.

0

75

2

2-P 질문입니다.

0

55

1

mac에서 시작하기 관련

0

86

2

5-Q 질문

0

62

2

풀이 코드 질문

0

62

2

맞왜틀

0

68

2