jupiny   6년 전

왠만한 예제들은 모두 통과하는데 채점을 돌리면 1%에서 바로 틀렸다고 뜨네요 ㅠㅠ

어떤 틀린 케이스가 있는 걸까요?

(코드에 대한 설명은 주석에 포함하였습니다.)

kdk8361   6년 전

3

123

678

얼마 나오시나요?

jupiny   6년 전

@kdk8361

1로 나옵니다!

kdk8361   6년 전

문제를 보니 한번에 최대 세칸 움직일 수 있다고 나와있네요.

+1, +2, +3

+11,+22,+33

+111,+222,+333

이게 한번에 움직일 수 있는 경우의 수인데 이렇게 생각하면 

3

123

678

에서는 +222,+333 해서 2가 나와야하는게 아닌가 싶네요.

jupiny   6년 전

헉ㅜ 최대 3개라는 말만 확인했고 최대 3칸 움직일 수 있다는 말을 문제에서 확인하지 못했네요.
좀 더 꼼꼼하게 문제를 읽어보도록 하겠습니다. 정말 감사합니다!!!

jupiny   6년 전

@kdk8361

가르쳐주신 답변을 참고해서 코드를 조금 수정하였는데 여전히 1%에서 여전히 틀리네요ㅠㅠ

앞에서부터 순차적으로 맞춰가는 제 알고리즘에 틀린 점이 있을까요??

위에 코드에서 30, 32, 34줄만 수정하였습니다.

kdk8361   6년 전

(0과 9는 인접해 있다.)

password[idx] = 9, cur_num = 1일 때 반대방향으로 -2만큼 한번만 돌리면 될텐데 3번을 돌리는 거 같네요.

jupiny   6년 전

@kdk8361

감사합니다! 엄청난 문제점이 있었네요. 생각도 못했었네요 ㅠㅠ

그래서 최소한의 횟수만큼 돌릴 수 있도록 아래처럼 코드(29 ~ 34줄)를 추가하였는데 여전히 1%에서 자꾸 틀리네요 ㅠㅠ

또 어떤 문제점이 있는걸까요...??


현재

3
999
111

을 입력받으면 1이 나옵니다.

kdk8361   6년 전

문제에는 idx 위치에서 한 행동만 할 수 있다는 제한 조건이 없습니다.

idx위치에서 연속된 1,2,3칸을 움직이는 행동을 다 할 수 있다는 거죠.

3
267
799

결과는 4가 나오는데 답은 3입니다.


jupiny   6년 전

아 반례 감사합니다!

제가 생각했던 것보다 더 어려운 문제이군요 ㅠㅠ

다른 풀이를 한번 고민해봐야겠군요..

jupiny   6년 전

@kdk8361

풀이를 수정하여 해결했습니다!!

제가 물을 때마다 항상 친절하고 자세하게 답변해주셔서 정말 감사합니다 ㅠㅠㅠ

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