목록을 최종 숫자로 줄입니다.


9

입력

숫자 목록 (배열) 또는 숫자 문자열을 사용하면 더 쉽습니다. 목록에 항상 두 개 이상의 요소가 있고 모든 요소는 자연수 (0보다 큰 정수)라고 가정 할 수 있습니다.

출력

단일 숫자 또는 숫자 문자열

문제

아이디어는 목록의 현재 단계에서 가장 큰 숫자의 마지막 숫자를 제거하여 숫자 목록을 줄이는 것입니다. 결국 한 숫자로 끝납니다 (여러 인스턴스가있는 경우에도 하나의 숫자 만 반환해야 함)

[123,343,121,76,465,786] -- The last digit in 786 is dropped, so it becomes 78
[123,343,121,76,465,78]  -- New largest number is 465, so the 5 is dropped, making it 46
[123,343,121,76,46,78]   -- Repeat until left with one number
[123,34,121,76,46,78]
[12,34,121,76,46,78]
[12,34,12,76,46,78]
[12,34,12,76,46,7]
[12,34,12,7,46,7]
[12,34,12,7,4,7]
[12,3,12,7,4,7]
[1,3,1,7,4,7]            -- If there are multiple max numbers, you **must** remove the last digit from all of them
[1,3,1,4]
[1,3,1]
[1,1]                    -- You have your answer when there is one number, or multiple numbers that are equal
1                        -- Result

허점

표준 허점 적용

다른 제약

프로그램 임의의 숫자 목록에 대해 작동 해야합니다 (물론 이유 내에서)

테스트 사례

[24,72,4]
[24,7,4]
[2,7,4]
[2,4]
[2]
2

[14, 7]
[1, 7]
[1]
1

[1278,232,98273,2334]
[1278,232,9827,2334]
[1278,232,982,2334]
[1278,232,982,233]
[127,232,982,233]
[127,232,98,233]
[127,232,98,23]
[127,23,98,23]
[12,23,98,23]
[12,23,9,23]
[12,2,9,2]
[1,2,9,2]
[1,2,2]
[1]
1

채점

이것은 모든 언어에서 가장 짧은 답변이 이깁니다!


1
내가 놓친 부분이 있으면 알려주십시오. 첫 번째 질문입니다.
Henry

14
몰라 너무 늦기 변화, 그러나 우리가하면 문제가 더 좋을 수도 경우 않았다 출력에 각 단계가 있습니다. 그렇지 않으면 대답이 매우 간단하다고 생각합니다.
DLosc

8
아무도 언급하지 않았기 때문에, 이것은 종종 샌드 박스에 걸리는 것입니다 .
James

1
답변이 목록에서 첫 번째 항목의 첫 번째 숫자가 아닌 테스트 사례를 추가 할 수 있습니까?
JAD

5
이 질문에 대한 답을 읽는 방법 [12, 123, 124]게시 된 모든 답변을 잘못12 만드는 입니다.
Ørjan Johansen

답변:





3

매스 매 티카, 29 바이트

Min[First@*IntegerDigits/@#]&

3

Japt , 8 6 5 바이트

@Shaggy 덕분에 -1 바이트

n g g

숫자 문자열 배열로 입력을받습니다. 온라인으로 사용해보십시오!

설명

        // implicit input: array of strings
n       // sort the array
  g     // get the first element
    g   // get the first character
        // implicit output

5 bytes : 배열을 정렬하고 첫 번째 요소를 얻고 첫 문자를 얻습니다.
얽히고 설킨

@ Shaggy Oh duh, 나는 이것을 완전히 복잡하게했다. 감사!
저스틴 마리너

문제 없습니다 :) n v g5 바이트에서도 작동합니다. 그건 그렇고, Japt에 오신 것을 환영합니다.
얽히고 설킨



2

V , 11 , 5 바이트

ÚxV}p

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

나는이 waaay를 실제로보다 복잡하게 만들고있었습니다 . 이 답변은 모든 행을 ASCII 값으로 정렬 한 다음 첫 번째 문자를 반환합니다. 이것은 친절하거나 지루한 답변이므로 실제로 원래 설명한 알고리즘을 구현하는 더 흥미로운 답변이 있습니다.

V , 11 바이트

òún
/äîä
Lx

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


나는 질문을 제기했을 때도 마찬가지였다. 원래의 대답은 내가 가장 기대했던 것입니다. 버머.
Henry

2

젤리 ,  3  2 바이트

ṂḢ

문자 (문자열) 목록을 가져 와서 결과를 인쇄하는 전체 프로그램.

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

어떻게?

우리는 가장 작은 선행 숫자를 반환해야합니다 ...

ṂḢ - Main link: list of lists of characters
Ṃ  - minimum (lexicographical ordering ensures this will start with the minimal digit)
 Ḣ - head (get that first digit character)

문제 없습니다.
Jonathan Allan

2

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

입력을 문자열 배열로 취합니다.

a=>a.sort()[0][0]

시도 해봐

쉼표로 구분 된 숫자 목록을 입력하십시오.

o.innerText=(f=
a=>a.sort()[0][0]
)((i.value="1278,232,98273,2334").split`,`);oninput=_=>o.innerText=f(i.value.split`,`)
<input id=i><pre id=o>



1

Braingolf , 17 바이트

VVR{Mvd<M&$_R}vvx

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

설명

VVR{Mvd<M&$_R}vvx  Implicit input from commandline args
VVR                Create stack2 and stack3, return to stack1
   {.........}     Foreach item in stack..
    M              ..Move item to next stack
     v             ..Switch to next stack
      d            ..Split item into digits
       <M          ..Move first item to next stack
         &$_       ..Clear stack
            R      ..Return to stack1
              vv   Switch to stack3
                x  Reduce to lowest value
                   Implicit output of last item on stack

즉, 각 항목의 첫 번째 숫자만으로 구성된 스택을 구성한 다음 가장 낮은 값을 출력합니다.

이 도전으로 인해 빌렘이 Braingolf에 추가 할 수있는 유용한 아이디어가 많이 생겼고, 이제 "특별한"foreach 루프가 추가되어 Braingolf는 5 바이트 단위로이를 수행 할 수 있습니다.

Braingolf , 5 바이트 [비경쟁]

(d<)x

설명

(d<)x  Implicit input from commandline args
(..)   Special foreach loop, iterates over the stack, moving each item to a special
       Sandboxed stack environment, and prepends the last item of the sandboxed
       stack to the real stack at the end of each iteration
 d<    Split into digits, move first digit to end of stack
    x  Reduce to lowest value
       Implicit output of last item on stack

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

나는 내장 명령을 추가에 대해 일반적으로 해요 단지 완전한 하나의 도전,하지만 난 새로운 것을 사용의 과다를 볼 수 있습니다 (...)난 정말 그냥이 문제에 대한 기능을 추가하는 것을 고려하지 않도록, foreach 루프.


에 실패합니다 [12,23,12]. 예상 출력은 2, 당신은 반환 1.
Olivier Grégoire

@ OlivierGrégoire 예상되는 결과는 1다음과 같습니다.[12,23,12] > [12,2,12] > [1,2,1] > [1,1]
Skidsdev

나의 나쁜, 나는 잘못 읽었다. 이전 의견을 참조하십시오 .
Olivier Grégoire


0

, 5 바이트

입력 번호 목록을 명령 줄 인수로 사용합니다.

@@SSg

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

번갈아:

MN@Zg

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

설명

두 프로그램 모두 g명령 행 인수 목록입니다.

@@SSg

SS문자열 비교를 사용하여 정렬하므로 크기에 관계없이 첫 번째 숫자가 가장 작은 숫자를 먼저 놓습니다. 단항 @은리스트 또는 스칼라의 첫 번째 요소를 제공합니다. 정렬 후 첫 번째 숫자의 첫 번째 숫자를 얻기 위해 두 번 적용합니다.

    g  [24 72 491]
  SS   [24 491 72]
 @     24
@      2

번갈아:

MN@Zg

Z우편 번호입니다; 단항 버전을 사용하여 목록을 바꿀 수 있습니다. 전치 된 목록의 첫 번째 요소는 모든 숫자의 첫 번째 숫자 목록입니다. @해당 자릿수 목록을 가져옵니다. MN최소한이 걸립니다.

    g  [24 72 491]
   Z   [[2 7 4] [4 2 9]]
  @    [2 7 4]
MN     2

0

PHP, 27 바이트

<?=substr(max($_GET),0,-1);

(와, 질문을 완전히 잘못 이해했습니다. 작동하지 않습니다. 나중에 편집 할 것입니다.)


0

Pyth , 9 7 바이트

hSmsh`d

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

설명

기본적으로 가장 작은 선행 자릿수를 반환합니다.

       Q    # Implicit input
  msh`d     # For each number in Q, convert to string, take the first character, convert to integer
hS          # Return the minimum


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