가장 크고 작은 가능한 수 편리한 형식 일 수

직무

음수가 아닌 숫자의 배열이 주어지면 가능한 한 가장 큰 숫자와 가장 작은 숫자를 결합하여 출력하십시오.

규칙

입력, 출력은 편리한 형식 일 수 있습니다.

배열은 최대 1 개의 십진수를 가질 수 있습니다.

input:[22,33,44,55.55,33]
output:4433332255.55,55.5522333344

input:[34,900,3,11,9]
output:990034311,113349009

input:[99.93,9,3,39]
output:939399.93,99.933399

input:[45.45,45,45,45]
output:45454545.45,45.45454545

input:[12,21,34,43,45.1]
output:4334211245.1,45.112213443

이것은 코드 골프 이므로 가장 짧은 코드가 승리합니다.



답변

파이썬 2 , 84 80 78 76 바이트

lambda a:[''.join(sorted(a,key=lambda s:'.'in s or s+s)[::i])for i in[-1,1]]

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

Arnauld 덕분에 -2 바이트


답변

05AB1E , 11 바이트

œJΣ'.¡ï}Á2£

온라인으로 사용해보십시오!
또는 테스트 스위트

설명

 œ             # get permutations of input
  J            # join each
   Σ    }      # sort by
    '.¡        # splitting into [before decimal, after decimal]
       ï       # and converting each to int
         Á     # rotate the result right
          2£   # and take the first 2 values


답변

자바 스크립트 (ES6), 68 66 바이트

a=>[1,-1].map(n=>a.sort((a,b)=>[a%1||a]+b<[b%1||b]+a?n:-n).join``)

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

어떻게?

다음 테스트를 사용하여 입력 배열에서 두 값을 비교합니다.

[a % 1 || a] + b < [b % 1 || b] + a

x % 1 || x

x

x

x

표현식 [x % 1 || x] + y은 위의 결과를 문자열로 강제 변환하고 다른 값과 연결합니다.

목록에 10 진수가 있으면 항상 가장 작은 값으로 간주해야합니다. 우리의 변환을 적용함으로써, 십진수는로 시작하는 문자열로 바뀌고 "0.", 다른 어떤 것보다 사전 식으로 정렬됩니다.

예 :

  a |   b | [a%1||a]+b | [b%1||b]+a
----+-----+------------+------------
  4 |   5 | "45"       | "54"
 10 |  11 | "1011"     | "1110"
  8 |  80 | "880"      | "808"
  7 | 9.5 | "79.5"     | "0.57"


답변

apt, 14 11 바이트

á m¬ñn é v2

시도 해봐

Luis 덕분에 1 바이트가 절약 +1되었습니다. 그의 솔루션도 바랍니다 .

á               :Permutations
  m             :Map
   ¬            :  Join
    ñ           :Sort by
     n          :  Converting each to a number
       é        :Rotate right
         v2     :Remove & return the first 2 elements


답변

Japt , 14 11 10 바이트

á m¬ñn gJò

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


답변

젤리 , 6 바이트

Œ!VṢ.ị

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

설명:

Œ!VṢ.ị Arguments: x
Œ!     Permutations of x
  V    Concatenate the representations of each permutation's elements and evaluate the result as Jelly code
   Ṣ   Sort
    .ị Get element at index 0.5, i.e. elements at indices 0 (last) and 1 (first)


답변

루비 , 56 45 바이트

->a{a.permutation.map{|p|p.join.to_f}.minmax}

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

-11 바이트, 감사합니다. Jordan