게으른 마이크로파 입력 생성


18

관련 : 전자 레인지를 프로그래밍 하고 게으른 값을 생성하십시오 .

제 동료는 너무 게으 르기 때문에 전자 레인지를 프로그래밍 할 때 손가락을 움직이지 않아도됩니다. (실제로 사실입니다!)

원하는 시간에 가장 근접한 시간을 제공하지만 모든 숫자가 동일한 전자 레인지 입력을 찾도록 도와주세요. 두 입력이 원하는 시간과 동일한 시간 차이를 가져 오는 경우 더 적은 숫자를 가진 입력을 선택하십시오. 둘 다 같은 자릿수를 가진다면 더 적은 숫자를 선택하십시오 – 그래서 그는 오래 기다릴 필요가 없습니다.

입력은 완벽 주의자가 입력 할 정수입니다 (예 : 4304 분 30 초 100, 60각각 1 분). 0보다 크고 9999를 초과하지 않습니다.

출력은 정수 여야합니다 (예 : 4444 분 44 초, 5555 초).

총 시간이 1 분 40 초 미만인 경우 입력과 출력 모두 단순한 초 (분 없음) 일 수 있습니다.

이것은 이므로 코드는 가능한 짧아야합니다.

테스트 사례 :

  30 →   33
  60 →   55
  70 →  111
  90 →   88
 100 →   55
 101 →   66
 120 →   77
 130 →   88
 200 →   99
 201 →  222
 500 →  444
 700 →  666
1000 →  888
1055 →  999
1056 → 1111
1090 → 1111

3
나는 반 게으른 접근법을 좋아합니다 . "30 초 추가"버튼이있을 때까지 계속 으깨세요. D
Geobits

@Geobits 11:30까지 많은 언론. 어쨌든, 사실 그는 내가 위에서 쓴 방법을 사용한다는 것입니다 ... :-D
Adám

2
예, 보통 몇 분 이상 입력하면됩니다. 프레스 수와 손가락 이동 거리 사이의 미묘한 트레이드 오프;)
Geobits

초 단위의 입력 / 출력이 허용됩니까?
CalculatorFeline

2
제 동료는 너무 게으 르기 때문에 전자 레인지를 프로그래밍 할 때 손가락을 움직이지 않아도됩니다. Dyalog APL 본부에서 일하는 누군가로부터 더 이상 기대하지 않았습니다 ... :)
Lynn

답변:


3

젤리, 26 바이트

bȷ2ḅ60
³ÇạÇ,
9Rẋ€4R¤ḌFÇ€ṂṪ

설명:

bȷ2ḅ60             f(x) = x tobase 100 frombase 60
³ÇạÇ,              g(x) = (abs(f(arg) - f(x)), x)
9Rẋ€4R¤            main(arg) = [1..9] repeat each with [1..4],
       ḌF           then get digits and flatten,
         ǀ         then map g,
           Ṃ        then minimum,
            Ṫ       then last element.

온라인으로 사용해보십시오!


2

자바 스크립트 (ES6), 112 바이트

n=>{c=n=>n*3+n%100*2;d=n=c(n);for(r=i=0;i<1e4;i++)/^(.)\1*$/.test(i)&(m=c(i)-n,m<0?m=-m:m)<d&&(d=m,r=i);return r}

c실제 경과 시간 (초)의 5 배를 계산 하는 도우미 기능 을 사용합니다 .


1

Dyalog APL , 37 바이트

{⍵⊃⍨⊃⍋⊃|-/(60⊥0 100∘⊤)¨⎕⍵}⍎¨,⎕D∘./⍨⍳4

⍳41 2 3 4
⎕D"0123456789"
∘./⍨반복 테이블 (곱하기 테이블과 같지만 각 셀에 A × B 대신 A의 B 반복이 포함 된 경우)
,테이블을 문자열 목록으로
⍎¨만들기 각 문자열을 숫자로 만듭니다 (이제 가능한 모든 목록이 없음) 결과.)
{... }함수는 인수에 의해 표현되는
⎕⍵메시지가 입력에 선행 인자
(... 두 (인수 및리스트 ...)의 각각에 적용되는
0 100∘⊤베이스 (100)로 변환하는
60⊥베이스 (60)로부터 변환
-/계산 개의 차이
|절대 값
추출 목록 ( -/결과를 캡슐화 했기 때문에 )
정렬 순서 (정렬하지 않고 오름차순을 얻기 위해 인수를 배치하는 순서 만 반환합니다. 두 요소가 같으면 현재 순서대로 유지됩니다. 목록의 길이가 증가하는 요소가 있으므로 관계를 처리합니다.)
첫 번째 것, 즉 입력과 절대 차이가 가장 작은 ⍵⊃⍨것은 인수 목록에서 해당 요소를 가져옵니다 (가능한 결과 목록).

1 바이트를 깎아 낸 문제의 동료에게 감사합니다.


참고 : OP를 게시 할 때 해결책이 없었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.