당신은 3 자리 숫자의 자물쇠로 자전거를 잠갔습니다. 이제 당신은 타고 가서 다음 프로그램의 도움으로 잠금을 해제해야합니다.
입력
첫 번째 매개 변수
잠금 상태 의 잠금 숫자 조합 . 두 번째 매개 변수와 달라야합니다 (= 잠금 해제 상태 조합 ). (그렇지 않으면 자전거를 도난 당했을 수도 있습니다!)
범위는 000..999입니다. 선행 0은 생략하면 안됩니다.
두 번째 매개 변수
잠금 해제 상태 에서 잠금 의 숫자 조합 . 이 가치는 당신의 목표입니다.
범위는 000..999입니다. 선행 0은 생략하면 안됩니다.
산출
초기 상태 (항상 첫 번째 매개 변수 임)와 마지막 단계 (항상 두 번째 매개 변수 임)를 포함하여 각 "회전"후 콤비네이션 잠금의 각 상태 목록.
연산
잠금 해제 상태 에서 올바른 숫자에 도달 할 때까지 첫 번째 숫자를 하나씩 "회전"하기 시작 합니다. 그러나 전체 잠금 해제 코드 에 대해 알고 있으므로 잠금 해제 상태 의 숫자에 도달하기 위해 가장 작은 회전 횟수가 필요한 방향으로 숫자를 회전시킵니다 . 넥타이의 경우 원하는 방향을 선택할 수 있습니다.
올바른 첫 번째 숫자에 도달하면 두 번째 및 세 번째와 동일한 절차를 시작합니다.
숫자의 순서는 원으로 이해하는 것입니다.
... 9 0 1 2 3 4 5 6 7 8 9 0 1 2 ...
즉, 1에서 9까지의 최소 회전 량이
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9
= 8
그러나
1 -> 0 -> 9
= 2.
노트
- 기본 I / O 규칙 에 의존 할 수 있습니다
- 매개 변수의 순서를 변경할 수 있습니다.
예
예 1, 수정
Input: 999 001
Output:
999
099
009
000
001
예 2, 올바른
Input: 000 292
Output:
000
100
200
290
291
292
예 3, 잘못된 출력
Input: 999 121
Wrong output:
999
899 // Wrong because wrong rotation direction.
799
699
...
Correct output:
999
099
199
109
119
129
120
121
예 4, 잘못된 입력
Input: 1 212 // Wrong because no leading zeros.
이것은 가장 짧은 답변이이기는 코드 골프 입니다.