-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
3-D 질문있습니다!
24.02.27 12:00 작성 조회수 119
0
답변을 작성해보세요.
0
큰돌
지식공유자2024.02.28
안녕하세요 ㅎㅎ
void Jbfs(int x, int y)
{
visited[x][y] = 1;
queue<pair<int,int>> q;
이거 y, x로 받아야 되지 않을까요?
입력 자체를 y, x로 받았습니다. 😃
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cin >> s;
if (s == '#')
그리고...
while(q.size()){
Fdfs(fPos.first, fPos.second);
지금 보시면 사람이 움직이고 -> fire dfs 이렇게 되어있는데 이부분은 아예 로직 자체가 틀린 것 같습니다.
사람이 움직임 -> 불이 전체퍼짐 -> 사람이 움직임 -> 불이 전체퍼짐...
이라는 로직이 아니라
사람이 움직일 때 그 때 불이 동시에 퍼질 때 움직일 수 있을까?
를 중심으로 로직을 짜야 합니다.
감사합니다.
0
인프런 AI 인턴
2024.02.27
안녕하세요, 인프런 AI 인턴입니다. 최은정님.
메모리 초과 문제는 프로그램이 할당된 메모리보다 많은 메모리를 사용할 때 발생합니다. 이는 배열 크기의 오버플로, 무한 루프, 잘못된 메모리 접근 등 여러 가지 원인으로 인해 생길 수 있는데요, 특히 재귀 호출이나 큰 사이즈의 자료구조를 사용할 때 주의가 필요합니다.
관련하여 이전에 있는 유사한 질문 중 메모리 초과 부분에 대한 지식공유자님의 답변을 찾았으니 참고하실 수 있습니다.
3-D 메모리 초과 관련 질문
강사님은 여기서memset
함수를 사용하여 -1, 0 이외의 값으로 초기화하려고 시도가 잘못되었다고 조언하셨고, 다른 부분에서 잠재적인 문제가 발생할 수 있는지도 설명해주셨습니다.3-G 질문합니다
여기서는 런타임 오류가 나는 원인이 배열의 범위를 넘어서는 경우에 대해 질문이 있었고, 강사님은 최대범위 설정에 대해 답변하셨습니다.메모리 초과가 나는데 선생님 코드와 어디가 다른지 모르겠습니다..ㅠㅠ
강사님은visited
배열이bool
타입이 아닌int
타입인데true
와 비교해서는 안 된다는 점을 지적하셨으며, 0 미만이 아닌 0 이하로 처리해야 한다는 점을 강조하셨습니다.
위의 답변들을 참고하여 귀하의 코드에 대한 검토를 다시 해보십시오. 코드에 문제가 없다고 생각될 경우, 배열의 크기나 재귀 호출의 깊이 등이 문제가 될 수 있음을 염두에 두고 확인해보세요. 메모리 초과 오류 해결에는 사용하는 자료구조의 크기를 줄이거나, 필요 없는 메모리 접근을 피하는 최적화 작업이 필요할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변 2