1697번 - 숨바꼭질
첫번째가 실패코드
두번째가 성공코드인데요
둘의 차이점은
두번째 코드는 두 위치중 큰 값을 구해서
배열을 큰값을 기준으로
ex) 위치가 5 와 17 일 경우
0~17 까지 범위 지정
하고 목적지 값 출력
첫번째 코드는 코드 내에서 허용 할 수 있는 최대범위 100,000 까지 설정해서
목적지 값 출력 인데
왜 첫번째는 틀리게 나오나요?
visited 함수로 한번 방문 한 값은 두번 다시 방문 못하니까
첫번째 코드대로 위치의 최대값을 기준으로 배열 생성해서 하면 안되는 건가요...?
N > K 라면 상관없지만 N < K 인 경우 범위를 K 값으로 제한하면 다음과 같은 반례가 존재합니다
입력: 1 15 정답: 5 (1-2-4-8-16-15) 출력: 6 (1-2-3-6-7-14-15)?
그럼 순간이동 *2 하는 걸 고려해서
max 에다가 +2 정도만 해줘도 문제가 해결 되나요??
*2 후 두 번 이상 -1을 하는 경우 *2를 하기 전에 먼저 -1을 하는 게 이득이기 때문에 그렇게 해도 최적해를 구할 수 있습니다.
댓글을 작성하려면 로그인해야 합니다.
le_effort 4년 전
첫번째가 실패코드
두번째가 성공코드인데요
둘의 차이점은
두번째 코드는 두 위치중 큰 값을 구해서
배열을 큰값을 기준으로
ex) 위치가 5 와 17 일 경우
0~17 까지 범위 지정
하고 목적지 값 출력
첫번째 코드는 코드 내에서 허용 할 수 있는 최대범위 100,000 까지 설정해서
목적지 값 출력 인데
왜 첫번째는 틀리게 나오나요?
visited 함수로 한번 방문 한 값은 두번 다시 방문 못하니까
첫번째 코드대로 위치의 최대값을 기준으로 배열 생성해서 하면 안되는 건가요...?