portableangel   9년 전

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

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

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

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

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

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

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

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

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

틀린 부분이 어디일까요?

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

Apple_Cplus   9년 전

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

pichulia   9년 전

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

시작위치와 종료위치가

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

아래의 문제지요

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

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

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

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

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

portableangel   9년 전

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

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

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