우선 모든 지점에 도착하는 최소 점프 수를 다 -1로 초기화한 후

시작점에 도달하는 최소 점프 수를 0(==C[s])으로 놓고

큐에 시작점을 넣은 다음(queue[q_e++]=s)

도달할 수 있는 지점들 중 이전에 도착한 적 없는 모든 지점에 대해 도달하는 거리를 C[queue[q_s]]+1로 잡고

이렇게 새롭게 도달한 지점들을 다시 큐에 넣고

반복해서 새로운 도달점이 생길때마다 큐에 넣어 더 이상 도달할 수 있는 장소가 없을 때까지 진행하게 한 뒤

C[e]를 출력하게 했습니다.

예외처리는 각 징검다리에 써있는 정수가 음수일 경우 양수로 변환해주고,

0일 경우 아무데도 갈 수 없는데 코드 상 포문이 무한루프에 빠지므로 n의 최댓값인 10000보다 큰 수를 0 대신 넣었습니다

틀린 부분이 어디일까요?

입력에 각 징검다리에 써 있는 정수들의 범위 조건이 없기에 10만 자리까지의 긴자리 정수가 들어올 수 있다는 가정 하에 긴자리 코드도 짜 봤는데 틀렸네요 ㅠㅠ 근데 아무래도 이런 문제는 아닐 듯하고..

Apple_Cplus   2년 전

오 ㅋㅋㅋ 저랑 같은 방법으로 하셨네요 .....ㅠ

pichulia   2년 전

예전에 입력범위가 1~n 까지라면서

시작위치와 종료위치가

0, n 으로 들어온 데이터가 있던 적이 있습니다.

아래의 문제지요

https://www.acmicpc.net/problem/1397

시작위치가 0이 들어온 경우, 구한 답에서 1을 더한 뒤 출력하니까 맞았습니다

이것도 비슷한 문제지 않을까 싶네요.

그러니까 인화철도 구구칠 수정해주세요 ㅠㅠㅠ

(잊을만 하면 재촉하기ㅋㅋㅋㅋㅋㅋ)

0번 위치에서 시작하는 케이스를 처리해봐도 오답이 뜨네여 ㅠㅠ

뭔가 범위 밖의 값이 들어오는거 같긴 한데 재채점을 기다려봐야겠어요 ㅋㅋㅋ

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