새로운 숫자 나 모양을 만들기 위해 특정 수의 일치 항목을 추가, 제거 또는 이동하는 것과 관련된 일치 하는 퍼즐 이 많이 있습니다 . 이것은 디지털 시계와 같습니다.
12 시간 디지털 시계에 유효한 시간이 주어지면 시계에서 보이는 모든 숫자가 해당 숫자가되도록 가장 적은 행을 이동해야하는 숫자를 출력하십시오. 둘 이상의 숫자가 최소값이면 모두 출력하십시오. 모든 숫자를 같은 숫자, 출력 -1
또는 0 이외의 잘못된 값 으로 만드는 것이 불가능한 경우 (많은 숫자를 얻습니다).
시계 숫자는 다음과 같습니다.
|
|
_
_|
|_
_
_|
_|
|_|
|
_
|_
_|
_
|_
|_|
_
|
|
_
|_|
|_|
_
|_|
_|
_
| |
|_|
테스트 사례 :
입력: 123
시계 표시 :
_ _
| : _| _|
| : |_ _|
산출: 4
설명 : 표시 1:23
하려면 총 12 개의 선을 그려야합니다. 따라서 모든 숫자가 동일하기 위해서는 각 숫자에 4 줄이 있어야합니다. 4 행이있는 유일한 숫자는 4
입니다. 따라서 대답은이어야 4
합니다.
입력: 1212
시계 표시 :
_ _
| _| : | _|
| |_ : | |_
산출: -1
설명 : 표시 12:12
에는 14 행이 필요합니다. 14를 4로 나눈 값은 정수가 아니므로 모든 숫자가 같을 수는 없습니다.
입력: 654
시계 표시 :
_ _
|_ : |_ |_|
|_| : _| |
산출: 5
설명 : 총 행 수는 15입니다. 15를 3으로 나눈 값은 5이므로 각 숫자에는 5 개의 행이 있어야합니다. 5 개 라인을 가지고있는 유일한 자리는 2
, 3
하고 5
. 답은 5
모든 자릿수 5를 만들기 위해 2 번의 이동 만 필요하기 때문입니다. 6의 왼쪽 하단에있는 선을 4의 하단으로 옮기면됩니다.
_ _
|_ : |_ |_|
_| : _| _|
그리고 보시다시피, 원래 4 자리였던 숫자의 오른쪽 상단에있는 선을 움직이면 5:55
됩니다. 모든 숫자를 a로 만들려면 2
또는 3
두 번 이상 이동해야합니다.
입력: 609
시계 표시 :
_ _ _
|_ : | | |_|
|_| : |_| _|
출력 : 609
( 6,0,9
또는 확인 [6,0,9]
).
설명 : 6
, 0
및 9
은 6 행을 갖는 유일한 숫자입니다. 따라서 이들은 유일한 솔루션입니다. 이 숫자를 유일한 숫자로 만들기 위해서는 두 번의 움직임이 필요하다는 것을 알기 어렵지 않습니다. 따라서 세 자리를 모두 출력합니다.
노트:
- 입력 시간이 유효해야하지만 출력 시간이 맞지 않습니다 (예 :
999
출력이 정상 임). - 나는 입력에 매우 유연합니다. 선행 0이 필요할 수 있습니다. 소수점이있는 숫자를 사용할 수 있습니다. 문자열을 사용할 수 있습니다. 배열을 사용할 수 있습니다. 모든 숫자에 대한 매개 변수를 가질 수 있습니다.