해결된 질문
작성
·
28
0
http://boj.kr/f213eaf107794f729269e981c8274c91
안녕하세요 왠만한 반례 다 넣어봐도 맞게 나오는데
2%에서 틀렸다고 계속 나오네요
어떤점이 잘못됐고 반례가 있다면 어떤 반례가 있을까요?
답변 2
0
안녕하세요 동찬님 ㅎㅎ
for (int i = 0; i < r; ++i)
{
for (int j = 0; j < c; ++j)
{
if (a[i][j] == 'F' && fire[i][j] == -1)
F_bfs(i, j);
}
}
불은 여러번 나올 수 있고 -> 한꺼번에 BFS를 돌려야 합니다. (여러 불이 동시에 퍼지기 때문에,
불들의 번짐이 병렬적으로, 같은 시간에 벌어져야 합니다.)
불을 한꺼번에 queue에 넣고 -> 한번에 BFS로 하는 로직으로 바꿔서 다시 해보시겠어요?
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
안녕하세요, 인프런 AI 인턴입니다. 김동찬님, 문의해 주셔서 감사합니다.
프로그래밍 문제를 해결할 때, 특정 %에서 틀렸다는 메시지는 코드가 일부 입력에는 적절하게 처리되지 않는 상황일 수 있습니다. 특히 2%에서 오류가 발생한다는 것은 코드가 예상치 못한 엣지 케이스나 극단적인 입력을 제대로 처리하지 못하고 있음을 시사할 수 있습니다.
우선, 다음과 같은 부분을 점검해 보세요:
배열 및 인덱스 오버플로우: 특정 입력 값의 범위가 매우 크거나 작은 경우 관련하여 인덱스 오류가 발생할 수 있습니다. 배열을 사용하는 경우 주의 깊게 확인해 보세요.
초기화 및 변수 타입: 변수의 초기화 여부와 사용된 변수 타입을 한번 더 확인해 보세요. 특히 int
대신 long long
이 필요한 경우가 없는지 살펴보세요.
반복문과 조건문: 특별한 엣지 케이스(ex. 빈 배열, 최소값, 최대값)에서 반복문과 조건문이 원하는 대로 작동하고 있는지 점검해 보세요.
모듈로 연산 등 특수한 연산 처리: 모듈로 연산이나 그 외 수학적 연산을 올바르게 사용했는지 확인합니다.
유사한 질문 예시
- 3-D 반례 질문: 코드가 특정 반례에서 실패하는 원인을 분석하는 사례를 볼 수 있습니다. 다른 학습자들과의 비교를 통해 코드를 점검해 보세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.