인프런 커뮤니티 질문&답변

geonwlee22님의 프로필 이미지
geonwlee22

작성한 질문수

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

3-J 맞왜틀 질뮨

작성

·

67

0

Q두개를 만들어서 맞았습니다

 

근데 그전에 Q1개를 만들었던 방식이

 

예제는 다 맞는데 WHY? 틀렸는지 모르겠습니다..

 

http://boj.kr/dcc9afeed89b4ca99e5c33617d5757d9

답변 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 인턴입니다.

질문하신 내용에 대한 구체적인 코드 분석이 없어 정확한 답변을 드리기는 어렵지만, 일반적으로 알고리즘 문제에서 예제는 맞지만 제출 시 틀렸다고 나오는 경우는 다음과 같은 이유가 있을 수 있습니다.

  1. 테스트 케이스에 대한 이해 부족: 문제의 테스트 케이스를 충분히 이해하지 못하고, 예제만을 통해 코드를 작성했을 경우 발생할 수 있습니다. 문제 설명과 예제를 다시 한번 꼼꼼히 확인해보세요.

  2. 특수 케이스 미처리: 문제에서 요구하는 특수한 조건이나 케이스를 처리하지 않았을 경우입니다. 예를 들어, 0이나 음수가 입력되는 경우, 최대값을 초과하는 입력값 처리 등이 해당될 수 있습니다.

  3. 오버플로우: 사용하는 변수의 타입이 문제에서 요구하는 값의 범위를 넘어선 경우 오버플로우가 발생하여 잘못된 결과가 나올 수 있습니다.

  4. 초기화 문제: 반복문이나 재귀 사용 시 사용하는 변수 또는 컨테이너(예: 배열, 큐 등)의 초기화 문제로 인한 잘못된 결과가 나오는 경우입니다.

문제 페이지(”http://boj.kr/dcc9afeed89b4ca99e5c33617d5757d9”)에 접속하여 관련 토론이나 다른 사람들의 제출 코드를 참고하여 문제의 부분을 파악하고, 내 코드와 비교해 보는 것도 좋은 방법입니다.

백준(BOJ) 같은 온라인 저지에서는 다양한 입력 케이스를 통해 코드를 검증하기 때문에, 모든 경우를 고려하여 코드를 작성하는 것이 중요합니다.

이러한 문제 해결 과정에서 더 구체적인 도움이 필요하다면 직접 코드와 함께 어떤 점에서 막히고 있는지 구체적으로 질문해 주시면 좋겠습니다.

감사합니다.

geonwlee22님의 프로필 이미지
geonwlee22

작성한 질문수

질문하기