Wejścia
Lista (tablica) liczb lub ciągów liczbowych, jeśli to ułatwia. Możesz założyć, że na liście zawsze będą co najmniej dwa elementy, a każdy element będzie liczbą naturalną (liczba całkowita większa od zera).
Wyjścia
Pojedyncza liczba lub ponownie ciąg liczbowy.
Problem
Chodzi o to, aby zmniejszyć listę liczb, usuwając ostatnią cyfrę największej liczby na bieżącym etapie listy, ostatecznie kończąc na jednym numerze (powinna zostać zwrócona tylko jedna liczba, nawet jeśli jest wiele wystąpień)
Przykład
[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
Luki
Inne ograniczenia
Twój program musi działać z dowolną listą liczb losowych (oczywiście w granicach rozsądku)
Przypadki testowe
[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
Punktacja
To jest golf-golfwygrywa najkrótsza odpowiedź w każdym języku!
[12, 123, 124]
Is12
, co czyni każdą Wysłany odpowiedź źle .Odpowiedzi:
Haskell , 16 bajtów
Wypróbuj online!
źródło
Python 2 , 24 bajty
-4 bajty dzięki notjagan.
Wypróbuj online!
źródło
min(zip(*l)[0])
.Python 3 ,
24, 21, 18 bajtówWypróbuj online!
TrzySześć bajtów zaoszczędzonych dzięki @totallyhuman!źródło
Mathematica, 29 bajtów
źródło
Japt ,
865 bajtów-1 bajt dzięki @Shaggy
Pobiera dane wejściowe jako tablicę ciągów liczbowych. Wypróbuj online!
Wyjaśnienie
źródło
n v g
działałby również dla 5 bajtów. Przy okazji, witaj w Japt.05AB1E , 3 bajty
Wypróbuj online!
źródło
[12,23,12]
.3,2,2,2,1
powoduje 1 zgodnie z oczekiwaniami.PHP , 45 bajtów
Wypróbuj online!
źródło
[12,23,12]
.V ,
11, 5 bajtówWypróbuj online!
Sprawiłem, że ten dzień był bardziej skomplikowany niż w rzeczywistości. Ta odpowiedź po prostu sortuje każdą linię według wartości ASCII, a następnie zwraca pierwszy znak. Ponieważ jest to miła lub nudna odpowiedź, oto bardziej interesująca odpowiedź, która faktycznie implementuje pierwotnie opisany algorytm:
V , 11 bajtów
Wypróbuj online!
źródło
Galaretka ,
32 bajtyPełny program, który pobiera listę list znaków (ciągów znaków) i wypisuje wynik.
Wypróbuj online!
W jaki sposób?
Musimy tylko zwrócić najmniejszą wiodącą cyfrę ...
źródło
JavaScript (ES6), 17 bajtów
Pobiera dane wejściowe jako tablicę ciągów.
Spróbuj
Wprowadź listę liczb oddzieloną przecinkami.
źródło
,,,, 3 bajty
Wyjaśnienie
źródło
Braingolf , 17 bajtów
Wypróbuj online!
Wyjaśnienie
Innymi słowy, konstruuje stos składający się tylko z pierwszej cyfry każdego elementu, a następnie wyprowadza najniższą.
To wyzwanie dało mi wiele przydatnych pomysłów na wbudowane dodatki, które mogę dodać do Braingolfa, a teraz dzięki dodaniu „specjalnej” pętli foreach Braingolf może to zrobić w 5 bajtach:
Braingolf , 5 bajtów [niekonkurencyjny]
Wyjaśnienie
Wypróbuj online!
Zwykle jestem przeciwny dodawaniu wbudowanych elementów tylko po to, aby ukończyć jedno wyzwanie, ale widzę mnóstwo zastosowań dla nowej
(...)
pętli foreach, więc tak naprawdę nie uważam, aby dodawała funkcję tylko dla tego wyzwania.źródło
[12,23,12]
. Oczekiwany wynik to2
: wróciłeś1
.1
:[12,23,12] > [12,2,12] > [1,2,1] > [1,1]
Funky , 18 bajtów
Pobiera dane wejściowe jako listę ciągów.
Wypróbuj online!
źródło
Pip , 5 bajtów
Pobiera listę liczb wejściowych jako argumenty wiersza polecenia.
Wypróbuj online!
Na przemian:
Wypróbuj online!
Objaśnienia
W obu programach
g
znajduje się lista argumentów wiersza polecenia.SS
sortuje za pomocą porównania ciągów, umieszczając na początku liczby o najmniejszych pierwszych cyfrach, niezależnie od ich wielkości. Unary@
daje pierwszy element listy lub skalara. Stosujemy go dwa razy, aby uzyskać pierwszą cyfrę pierwszej liczby po sortowaniu.Na przemian:
Z
jest zip; jego jednoargumentowa wersja może służyć do transponowania listy. Pierwszym elementem transponowanej listy jest lista pierwszych cyfr wszystkich liczb.@
pobiera tę listę cyfr;MN
bierze swoje minimum.źródło
PHP, 27 bajtów
(Wow, całkowicie źle zrozumiałem pytanie. To nie działa. Będzie edytować później.)
źródło
Pyth ,
97 bajtówWypróbuj online!
Wyjaśnienie
To w zasadzie zwraca najmniejszą cyfrę wiodącą.
źródło
Python 3 , 33 bajty
Wypróbuj online!
@DJMcMayhem i @totallyhuman mają lepsze rozwiązania, ale moje zakłada dane liczbowe zamiast ciągu.
źródło
Pyth, 3 bajty
Dane wejściowe to lista ciągów znaków liczb.
Wypróbuj online
Wyjaśnienie:
źródło