강의

멘토링

로드맵

Inflearn brand logo image

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

김상민님의 프로필 이미지
김상민

작성한 질문수

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

3-D와 반례

3-D 반례

작성

·

56

0

정확히 선생님이 알려주신 반례를 고려하지 못해서 계속 틀렸었네요.

이 반례를 생각못해서 30분 정도 헤매다가 강의를 듣고 알았습니다..
이런 반례를 잘 생각해낼 수 있는 팁이 있을까요??

 

참고

틀린코드
https://www.acmicpc.net/source/share/0041d7ec240f4070b3803327cefdc672

맞은 코드 (불 방문 배열 0 체크)

https://www.acmicpc.net/source/share/7aaf0dee6f534ea6b896145d17a81a14

 

 

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 상민님 ㅎㅎ

끝점을 생각하는게 좋습니다.

if (a[ny][nx] == '#' || a[ny][nx] == 'F' || (f[ny][nx] <= j[y][x] + 1) || j[ny][nx]) continue;

앞의 코드를 보면 정상적으로 불보다 느리다면 -> 그 부분을 탐색하지 않는다.

옳은 로직이지만

불이 0이 될 수는 없을까? INF가 되는 경우의 수? 이런식으로 문제범위상의 나올 수 있는 끝점을 기반으로 다시한번 생각하시는게 좋습니다.

그러다보면 반례를 통과하는 코드를 작성할 수 있으실겁니다 ㅎㅎ

 


 


 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


반례를 고려하는 팁 명심하겠습니다. 감사합니다 :)

김상민님의 프로필 이미지
김상민

작성한 질문수

질문하기