wb998   5년 전

1697번 소스인데 자꾸 틀렸습니다가 뜨네요.. 물론 테스트 케이스는 잘 돌아갑니다

문제의 참조 알고리즘을 보고 BFS 형식으로 짜 봤습니다

djm03178   5년 전

잘 돌아가는 그 케이스는 테스트 케이스가 아니라 예제 케이스라고 부릅니다.

예제가 잘 돌아간다고 테스트를 멈추지 말고, 다양한 입력을 직접 만들어 넣어보세요. 반례가 금방 나옵니다.

K가 마지막 지점이라는 말은 없습니다. 다음 케이스의 답은 2입니다.

https://ideone.com/X7d2GG

park780172   5년 전

윗 분에 이어서 적어보자면

이 문제는 굳이 배열을 200001까지 안 해줘도 됩니다.

또한,

if 조건문 안에 '배열'과 그 배열의 '범위'를 동시에 조건으로 검사하고 싶을 때는

배열의 '범위'를 가장 먼저 쓰는 것이 좋습니다.

'배열'을 먼저 쓸 경우, 배열의 '범위'가 잘못됐을 때, 런타임 에러가 발생할 수 있습니다.

if (check[x + 1] == false && x + 1 <= 100000) → 런타임 에러 발생 가능.('배열'부터 검사하기 때문에)

if (x + 1 <= 100000 && check[x + 1] == false) → '범위'의 조건이 안 맞아도, 런타임 에러가 발생안 할 수 있음.


wb998   5년 전

두분 모두 답변 감사합니다 첫번째 분 말대로 디버깅을 해보니 왜 안되는지 알아냈고 두번쨰 분 덕분에 런타임 에러 잡아낼 수 있었네요 감사합니다!

댓글을 작성하려면 로그인해야 합니다.