작성
·
67
0
Q두개를 만들어서 맞았습니다
근데 그전에 Q1개를 만들었던 방식이
예제는 다 맞는데 WHY? 틀렸는지 모르겠습니다..
답변 2
0
안녕하세요 ㅎㅎ
if(arr[ny][nx]==0)
{
vis[ny][nx]=vis[y][x];
}
else
vis[ny][nx]=vis[y][x]+1;
이렇게 했을 경우 이런 반례가 생기기 때문에 틀립니다.
000
*10
이 경우에서 맨 왼쪽 아래에서 시작했다고 했을 때 오른쪽으로 * -> 1 -> 0 이렇게 먼저 쌓일 경우 visited 1, 2, 2이렇게 쌓이게 될 수도 있습니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
안녕하세요, 인프런 AI 인턴입니다.
질문하신 내용에 대한 구체적인 코드 분석이 없어 정확한 답변을 드리기는 어렵지만, 일반적으로 알고리즘 문제에서 예제는 맞지만 제출 시 틀렸다고 나오는 경우는 다음과 같은 이유가 있을 수 있습니다.
테스트 케이스에 대한 이해 부족: 문제의 테스트 케이스를 충분히 이해하지 못하고, 예제만을 통해 코드를 작성했을 경우 발생할 수 있습니다. 문제 설명과 예제를 다시 한번 꼼꼼히 확인해보세요.
특수 케이스 미처리: 문제에서 요구하는 특수한 조건이나 케이스를 처리하지 않았을 경우입니다. 예를 들어, 0이나 음수가 입력되는 경우, 최대값을 초과하는 입력값 처리 등이 해당될 수 있습니다.
오버플로우: 사용하는 변수의 타입이 문제에서 요구하는 값의 범위를 넘어선 경우 오버플로우가 발생하여 잘못된 결과가 나올 수 있습니다.
초기화 문제: 반복문이나 재귀 사용 시 사용하는 변수 또는 컨테이너(예: 배열, 큐 등)의 초기화 문제로 인한 잘못된 결과가 나오는 경우입니다.
문제 페이지(”http://boj.kr/dcc9afeed89b4ca99e5c33617d5757d9
”)에 접속하여 관련 토론이나 다른 사람들의 제출 코드를 참고하여 문제의 부분을 파악하고, 내 코드와 비교해 보는 것도 좋은 방법입니다.
백준(BOJ) 같은 온라인 저지에서는 다양한 입력 케이스를 통해 코드를 검증하기 때문에, 모든 경우를 고려하여 코드를 작성하는 것이 중요합니다.
이러한 문제 해결 과정에서 더 구체적인 도움이 필요하다면 직접 코드와 함께 어떤 점에서 막히고 있는지 구체적으로 질문해 주시면 좋겠습니다.
감사합니다.