Przesłanka:
Twoja reputacja jest w formie wymiany stosu, jeśli można ją przedstawić poprzez rozłożenie liczby medali (złoto, srebro i brąz liczone osobno) na ich 10 cyfr podstawowych i połączenie ich w dowolnej kolejności, z kilkoma zastrzeżeniami.
Podczas rozkładu każdy
- Cyfra złotego medalu jest warta trzy cyfry.
- Srebro jest warte dwie cyfry.
- Brąz to jedna cyfra.
- Dodatkowo, ponieważ SE nie wyświetla typu medalu, jeśli go nie masz, liczba 0 medali dla danego typu nie da wyniku
[0]
.
Przykład:
[1 Gold, 2 Silvers, 3 Bronzes]
rozpadnie się na[1,1,1,2,2,3]
. 321112 i 213121 to dwa przykłady numeru w kształcie litery SE dla tych medali.[20 Golds, 0 Silvers, 20 Bronzes]
rozpadnie się na[2,2,2,0,0,0,2,0]
. 20002022 to numer formularza SE.[11 Golds, 0 Silvers, 0 Bronzes]
rozpadnie się na[1,1,1,1,1,1]
. 111111 jest jedynym numerem tego formularza SE.
Podczas rozważania numeru SE nie będzie żadnych początkowych zer. Np. W drugim przykładzie powyżej 00002222 -> 2222
nie byłby uważany za numer formularza SE dla [20,0,20]
.
Wejście wyjście:
Dane wejściowe to lista / krotka / tablica / cokolwiek, z [reputation, gold_medals, silver_medals, bronze_medals]
których wszystkie są liczbami całkowitymi nieujemnymi. Jest to przyjęta kolejność, ale można ją zmienić. Po prostu zanotuj odpowiedź.
Dane wyjściowe to dowolne dwie spójne wartości true i false.
Zasady:
- Dane wejściowe zawsze będą prawidłowe
- Zawsze będziesz mieć co najmniej 1 powtórzenie
- Nie możesz w ogóle mieć medali, co zawsze powinno zwracać wartość false.
- Liczenie medali nie ma wpływu na rzeczywistość. Posiadanie kilkuset złotych i brak brązów jest w porządku.
- To jest golf golfowy, więc wygrywa najkrótsza odpowiedź w bajtach.
Przypadki testowe:
#[Rep, Gold, Silver, Bronze] -> Output
[4, 0, 0, 4] -> True
[1447, 0, 4, 17] -> True
[74414, 4, 0, 17] -> True
[4444, 4, 0, 4] -> True
[4455, 0, 54, 0] -> True
[5355, 5, 0, 3] -> True
[53535, 5, 3, 0] -> True
[4444, 0, 0, 4444] -> True
[444, 4, 0, 0] -> True
[1234, 0, 0, 1234] -> True
[1234, 0, 0, 4321] -> True
[4444, 1, 0, 1] -> False
[5555, 5, 0, 55] -> False
[1234, 1, 23, 4] -> False
[1, 0, 0, 0] -> False
[1001001, 0, 10, 10] -> False
code-golf
decision-problem
Veskah
źródło
źródło
[bronze, silver, gold]
i osobne drugie wejściereputation
?Odpowiedzi:
05AB1E ,
1614131110 bajtówPobiera dane medali w kolejności
[bronze, silver, gold]
jako pierwsze wejście ireputation
drugie wejście.-1 bajt dzięki @Grimy .
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
3L
->∞
dla -1.\x19\xd7\x30\x4b\x4a\x82\x80\x7b\xec\xcb
: Powinno być możliwe uruchomienie tych bajtów szesnastkowych z--osabie
flagą, ale nie jestem pewien, jak to zrobić w wersji Elixir 05AB1E, aby być całkowicie uczciwym (ale poproszę o trochę inne osoby w celu weryfikacji i odpowiedzi z odpowiedzią).JavaScript (ES6),
9274 bajtyPobiera dane wejściowe jako
(['gold','silver','bronze'])('rep')
. Zwraca wartość logiczną.Wypróbuj online!
JavaScript (ES6), 74 bajty
Pobiera dane wejściowe jako
(gold, silver, bronze, 'rep')
. Zwraca wartość logiczną.Wypróbuj online!
źródło
MATL ,
28 bajtów20 bajtów16 bajtów13 bajtówZwraca 0 dla wartości false i 1 dla wartości true. Można to zdecydowanie pograć w golfa.
Do 16 bajtów, jeśli wynik reputacji można wziąć osobno, a kolejność to [brąz, srebro, złoto], reputacjaDo 13 bajtów dzięki Luisowi Mendo
Wypróbuj online!
źródło
Rubinowy , 69 bajtów
Wypróbuj online!
źródło
J ,
383431 bajtówWypróbuj online!
źródło
Japt ,
141312 bajtówPobiera dane wejściowe jako
[rep, bronze, silver, gold]
Wypróbuj lub Zweryfikuj wszystkie przypadki testowe
źródło
Å
był niepotrzebny, ponieważ pozbyłby sięfn
pierwszej wartości. UsunięcieÅ
powoduje, że powstaje 12 bajtówRetina 0.8.2 , 45 bajtów
Wypróbuj online! Link zawiera pakiet testowy. Wyjaśnienie:
Usuń zero wyników.
Rozwiń złote i srebrne wyniki i przekonwertuj separator na nowy wiersz.
Posortuj osobno reputację i wyniki rozszerzone.
Porównaj posortowane cyfry.
źródło
Galaretka , 10 bajtów
Wypróbuj online!
Argument 1:
[Bronze, Silver, Gold]
Argument 2:
Rep
źródło
Rakieta,
14910798 bajtówWypróbuj online!
Po raz pierwszy gra w golfa w Rakiety, więc wciąż szukam ulepszeń ...
Objaśnienie (oryginalnej dłuższej wersji, ale ten sam pomysł):
źródło
Węgiel drzewny , 24 bajty
Wypróbuj online! Link jest do pełnej wersji kodu. Pobiera dane wejściowe w powtórzeniu zamówienia, brązie, srebrze, złocie i wyjściach,
1
jeśli powtórzenie jest ważne. Wyjaśnienie:Załóż, że powtórzenie jest prawidłowe.
Zapętlić cztery wartości wejściowe. Naciśnij każdą cyfrę każdej wartości
i
razy, gdziei
jest indeksowany indeks wartości. Stosuje się tutaj liczbową konwersję podstawową, ponieważ konwertuje0
ona na pustą tablicę.Sprawdź, czy liczba każdej cyfry w tablicy odpowiada tej z pierwszego wejścia. Jeśli coś się różni, wyczyść płótno.
źródło
Galaretka , 18 bajtów
Wypróbuj online!
to jest trochę złe
źródło
Python 2 ,
80797768 bajtówWypróbuj online!
Pobiera dane wejściowe jako
rep, gold, silver, bronze
.źródło
Perl 5
-lF
, 62 bajtyWypróbuj online!
Pobiera dane w osobnych wierszach jako
źródło