가장 크고 작은 가능한 수


16

직무

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

규칙

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

배열은 최대 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

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


1
첫 번째 출력이 4422333355.55, 55.5544333322가 아닙니까? 그것들은 각각 더 작고 더 큽니다.
ouflak

@ouflak, 가장 크고 가장 작은 것을 출력해야합니다.
Vedant Kandoi

1
걱정 마세요, 지금보십시오. 소수점 이하 자리와 혼동했습니다.
ouflak

싶은 [[55.55,22,33,33,44],[44,33,33,22,55.55]]허용 가능한 출력 포맷이 될?
얽히고 설킨

1
어쨌든 괜찮습니다 @ 조던
Vedant Kandoi

답변:



3

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

죄송합니다 cast to float. 가 없습니다 . 나는 레거시에 하나가 있다는 것을 기억하지만, 그냥 찾아 보았을 것입니다. 분명히 stringified cast to float문자열 대신에 수레를 원하기 때문에 꽤 쓸모가 없습니다. xD
Kevin Cruijssen

@ KevinCruijssen : 예. 우리는 없었다is_number하지만 불행히도 to_number.
Emigna

3

자바 스크립트 (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 || xxxx

표현식 [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"

3

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

좋아,이게 더 낫다 !! 제길!! 그것은 é이번에 숨겨져있었습니다 !!
Luis felipe De jesus Munoz

3

Japt , 14 11 10 바이트

á m¬ñn gJò

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


좋은데 나는 á ®¬nÃn당신의 길을 생각하지 못했던 자신을 걷어차는 첫 줄을 가졌 습니다.
얽히고 설킨

-h플래그를 사용하여 12 바이트
얽히고 설킨

-g플래그를 사용하여 11 바이트 í대신에 작동합니다 ï.
Shaggy 2013

@Shaggy Excellent! 감사!!
Luis felipe De jesus Munoz

댕! 내가 곧 포기한 것 같습니다. 아주 잘 했어요.
Shaggy

3

젤리 , 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)

나는 젤리로 프로그래밍하지는 않지만 .ị목록의 첫 번째 항목과 마지막 항목을 모두 얻는 멋진 방법입니다. 좋은 대답입니다! 나에게서 +1
케빈 크루이 ssen

1
@KevinCruijssen 실제로 마지막 항목과 첫 번째 항목을 가져옵니다. : P
Outgolfer Erik

또한 젤리로 프로그래밍 한 적이 없지만 .ị작동 방식 에 대해 혼란 스럽습니다 . 내가 정확하게 문서를 읽고 있어요, 내가 생각 층 (x)와 CEIL (X)에서 Y의 요소를 가져오고 .있다 0.5. 그것은 인덱스 0과 1에서 y의 요소를 얻는다는 것을 의미하지 않습니까?
Cowabunghole

Jelly 1 기반 색인이 있습니까? 그것은이 행동을 설명 할 것이지만 나는 문서에서 그것에 대해 아무것도 보지 못했습니다.
Cowabunghole

1
@Cowabunghole 네, 젤리는 1 인덱스입니다.
Outgolfer Erik


2

Pyth, 13 12 바이트

hM_BSvsM.p`M

형식으로 출력합니다 [smallest, largest]. 여기 에서 온라인으로 시도 하거나 모든 테스트 사례를 한 번에 확인 하십시오 .

hM_BSvsM.p`MQ   Implicit: Q=eval(input())
                Trailing Q inferred
          `MQ   Stringify all elements of Q
        .p      Generate all permutations of the above
      sM        Concatenate each permutation
     v          Evaluate each as a number
    S           Sort them
  _B            Pair the sorted list with its reverse
hM              Take the first element of each, implicit print

편집 : 매핑 기능에서 문자열을 제거하여 바이트를 저장했습니다. 이전 버전: hM_BSmvs`Md.p



1

껍질 , 10 바이트

§,▼▲morṁsP

온라인으로 시도 하거나 모두 확인하십시오!

설명

§,▼▲m(rṁs)P  -- example input: [2,3,1.1]
          P  -- permutations: [[2,3,1.1],[3,2,1.1],[1.1,3,2],[3,1.1,2],[1.1,2,3],[2,1.1,3]]
    m(   )   -- map the following
                (example with [1.1,2,3])
       ṁs    -- | show each and join: "1.123"
      r      -- | read: 1.123
             -- : [231.1,321.1,1.132,31.12,1.123,21.13]
§,           -- fork and join as tuple
  ▼          -- | min: 1.123
   ▲         -- | max: 321.1
             -- : (1.123,321.1)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.