Largest and Smallest Possible Number
up vote
16
down vote
favorite
Task
Given an array of non-negative numbers, output the largest and smallest possible number that can be formed by joining them.
Rules
Input,Output can be in any convenient format.
The array may have at most 1 decimal number.
Examples
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
This is code-golf so shortest code wins.
code-golf
|
show 5 more comments
up vote
16
down vote
favorite
Task
Given an array of non-negative numbers, output the largest and smallest possible number that can be formed by joining them.
Rules
Input,Output can be in any convenient format.
The array may have at most 1 decimal number.
Examples
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
This is code-golf so shortest code wins.
code-golf
1
Wouldn't the first output be: 4422333355.55, 55.5544333322? Those are smaller and larger respectively.
– ouflak
2 days ago
@ouflak, you have to output the largest and smallest.
– Vedant Kandoi
2 days ago
1
Nevermind, see it now. Got confused with the decimal place.
– ouflak
2 days ago
Would[[55.55,22,33,33,44],[44,33,33,22,55.55]]
be an acceptable output format?
– Shaggy
2 days ago
1
Any way is fine @Jordan
– Vedant Kandoi
2 days ago
|
show 5 more comments
up vote
16
down vote
favorite
up vote
16
down vote
favorite
Task
Given an array of non-negative numbers, output the largest and smallest possible number that can be formed by joining them.
Rules
Input,Output can be in any convenient format.
The array may have at most 1 decimal number.
Examples
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
This is code-golf so shortest code wins.
code-golf
Task
Given an array of non-negative numbers, output the largest and smallest possible number that can be formed by joining them.
Rules
Input,Output can be in any convenient format.
The array may have at most 1 decimal number.
Examples
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
This is code-golf so shortest code wins.
code-golf
code-golf
asked 2 days ago
Vedant Kandoi
49213
49213
1
Wouldn't the first output be: 4422333355.55, 55.5544333322? Those are smaller and larger respectively.
– ouflak
2 days ago
@ouflak, you have to output the largest and smallest.
– Vedant Kandoi
2 days ago
1
Nevermind, see it now. Got confused with the decimal place.
– ouflak
2 days ago
Would[[55.55,22,33,33,44],[44,33,33,22,55.55]]
be an acceptable output format?
– Shaggy
2 days ago
1
Any way is fine @Jordan
– Vedant Kandoi
2 days ago
|
show 5 more comments
1
Wouldn't the first output be: 4422333355.55, 55.5544333322? Those are smaller and larger respectively.
– ouflak
2 days ago
@ouflak, you have to output the largest and smallest.
– Vedant Kandoi
2 days ago
1
Nevermind, see it now. Got confused with the decimal place.
– ouflak
2 days ago
Would[[55.55,22,33,33,44],[44,33,33,22,55.55]]
be an acceptable output format?
– Shaggy
2 days ago
1
Any way is fine @Jordan
– Vedant Kandoi
2 days ago
1
1
Wouldn't the first output be: 4422333355.55, 55.5544333322? Those are smaller and larger respectively.
– ouflak
2 days ago
Wouldn't the first output be: 4422333355.55, 55.5544333322? Those are smaller and larger respectively.
– ouflak
2 days ago
@ouflak, you have to output the largest and smallest.
– Vedant Kandoi
2 days ago
@ouflak, you have to output the largest and smallest.
– Vedant Kandoi
2 days ago
1
1
Nevermind, see it now. Got confused with the decimal place.
– ouflak
2 days ago
Nevermind, see it now. Got confused with the decimal place.
– ouflak
2 days ago
Would
[[55.55,22,33,33,44],[44,33,33,22,55.55]]
be an acceptable output format?– Shaggy
2 days ago
Would
[[55.55,22,33,33,44],[44,33,33,22,55.55]]
be an acceptable output format?– Shaggy
2 days ago
1
1
Any way is fine @Jordan
– Vedant Kandoi
2 days ago
Any way is fine @Jordan
– Vedant Kandoi
2 days ago
|
show 5 more comments
10 Answers
10
active
oldest
votes
up vote
4
down vote
Python 2, 84 80 78 76 bytes
lambda a:[''.join(sorted(a,key=lambda s:'.'in s or s+s)[::i])for i in[-1,1]]
Try it online!
-2 bytes, thanks to Arnauld
add a comment |
up vote
3
down vote
05AB1E, 11 bytes
œJΣ'.¡ï}Á2£
Try it online!
or as a Test Suite
Explanation
œ # 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
Too bad we don't have acast to float
. I remember there was one in the Legacy, but I just looked it up and apparently it was astringified cast to float
, which is pretty useless since you want floats instead of strings to sort on.. xD
– Kevin Cruijssen
2 days ago
@KevinCruijssen: Yeah. We had anis_number
but unfortunately noto_number
.
– Emigna
2 days ago
add a comment |
up vote
3
down vote
JavaScript (ES6), 68 66 bytes
a=>[1,-1].map(n=>a.sort((a,b)=>[a%1||a]+b<[b%1||b]+a?n:-n).join``)
Try it online!
How?
We use the following test to compare two values in the input array:
[a % 1 || a] + b < [b % 1 || b] + a
The expression x % 1 || x
returns the decimal part of $x$ if $x$ is a decimal number, or leaves $x$ unchanged otherwise.
The expression [x % 1 || x] + y
coerces the above result to a string and concatenates it with the other value.
If there's a decimal number in the list, it must always be considered as the smallest value. By applying our conversion, a decimal number is turned into a string starting with "0."
, which is lexicographically ordered before anything else.
Examples:
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"
add a comment |
up vote
3
down vote
Japt, 14 11 bytes
á m¬ñn é v2
Try it
1 byte saved thanks to Luis, please +1
his solution too.
á :Permutations
m :Map
¬ : Join
ñ :Sort by
n : Converting each to a number
é :Rotate right
v2 :Remove & return the first 2 elements
Ok, this is better!! damn!! thaté
was hidden all this time!!
– Luis felipe De jesus Munoz
2 days ago
add a comment |
up vote
3
down vote
Japt, 14 11 10 bytes
á m¬ñn gJò
Try it online!
Nice one. I hadá ®¬nÃn
for the first line - kicking myself that I didn't think of your way.
– Shaggy
2 days ago
12 bytes, using the-h
flag.
– Shaggy
2 days ago
11 bytes, using the-g
flag. Also works withí
instead ofï
.
– Shaggy
2 days ago
@Shaggy Excellent! Thanks!!
– Luis felipe De jesus Munoz
2 days ago
Dang! Looks like I gave up to soon; very nicely done.
– Shaggy
2 days ago
|
show 1 more comment
up vote
3
down vote
Jelly, 6 bytes
Œ!VṢ.ị
Try it online!
Explanation:
Œ!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)
I never program in Jelly, but.ị
is a pretty cool way of getting both the first and last item of a list. Nice answer! +1 from me.
– Kevin Cruijssen
2 days ago
1
@KevinCruijssen It actually gets the last and first item. :P
– Erik the Outgolfer
2 days ago
I've also never programmed in Jelly, but I'm confused as to how.ị
works. If I'm reading the docs correctly, I would thinkị
gets the element of y at floor(x) and ceil(x), and.
is0.5
. Doesn't that mean it will get elements of y at index 0 and 1?
– Cowabunghole
2 days ago
Is Jelly 1-based indexed? That would explain this behavior but I don't see anything about that in the docs.
– Cowabunghole
2 days ago
1
@Cowabunghole Yes, Jelly is 1-indexed.
– Erik the Outgolfer
2 days ago
|
show 2 more comments
up vote
3
down vote
Ruby, 56 45 bytes
->a{a.permutation.map{|p|p.join.to_f}.minmax}
Try it online!
-11 bytes, thanks Jordan
New contributor
1
Nice work! You can save 2 bytes by dropping the parentheses around your argument (->a{...
) and another 9 by using the handyminmax
method: tio.run/…
– Jordan
yesterday
add a comment |
up vote
2
down vote
Pyth, 13 12 bytes
hM_BSvsM.p`M
Outputs in form [smallest, largest]
. Try it online here, or verify all the test cases at once here.
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
Edit: Saved a byte by taking stringification out of the mapping function. Previous version: hM_BSmvs`Md.p
add a comment |
up vote
2
down vote
Perl 6, 41 bytes
{.max,.min}o+<<*.permutations.map(*.join)
Try it online!
Alternatives:
{.max,.min}o+<<*.permutations.map:{.join}
{.max,.min}o{[map +*.join,.permutations]}
{.max,.min}o{+<<map *.join,.permutations}
add a comment |
up vote
1
down vote
Husk, 10 bytes
§,▼▲morṁsP
Try it online or verify all!
Explanation
§,▼▲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)
add a comment |
10 Answers
10
active
oldest
votes
10 Answers
10
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
4
down vote
Python 2, 84 80 78 76 bytes
lambda a:[''.join(sorted(a,key=lambda s:'.'in s or s+s)[::i])for i in[-1,1]]
Try it online!
-2 bytes, thanks to Arnauld
add a comment |
up vote
4
down vote
Python 2, 84 80 78 76 bytes
lambda a:[''.join(sorted(a,key=lambda s:'.'in s or s+s)[::i])for i in[-1,1]]
Try it online!
-2 bytes, thanks to Arnauld
add a comment |
up vote
4
down vote
up vote
4
down vote
Python 2, 84 80 78 76 bytes
lambda a:[''.join(sorted(a,key=lambda s:'.'in s or s+s)[::i])for i in[-1,1]]
Try it online!
-2 bytes, thanks to Arnauld
Python 2, 84 80 78 76 bytes
lambda a:[''.join(sorted(a,key=lambda s:'.'in s or s+s)[::i])for i in[-1,1]]
Try it online!
-2 bytes, thanks to Arnauld
edited 2 days ago
answered 2 days ago
TFeld
13.5k21139
13.5k21139
add a comment |
add a comment |
up vote
3
down vote
05AB1E, 11 bytes
œJΣ'.¡ï}Á2£
Try it online!
or as a Test Suite
Explanation
œ # 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
Too bad we don't have acast to float
. I remember there was one in the Legacy, but I just looked it up and apparently it was astringified cast to float
, which is pretty useless since you want floats instead of strings to sort on.. xD
– Kevin Cruijssen
2 days ago
@KevinCruijssen: Yeah. We had anis_number
but unfortunately noto_number
.
– Emigna
2 days ago
add a comment |
up vote
3
down vote
05AB1E, 11 bytes
œJΣ'.¡ï}Á2£
Try it online!
or as a Test Suite
Explanation
œ # 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
Too bad we don't have acast to float
. I remember there was one in the Legacy, but I just looked it up and apparently it was astringified cast to float
, which is pretty useless since you want floats instead of strings to sort on.. xD
– Kevin Cruijssen
2 days ago
@KevinCruijssen: Yeah. We had anis_number
but unfortunately noto_number
.
– Emigna
2 days ago
add a comment |
up vote
3
down vote
up vote
3
down vote
05AB1E, 11 bytes
œJΣ'.¡ï}Á2£
Try it online!
or as a Test Suite
Explanation
œ # 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
05AB1E, 11 bytes
œJΣ'.¡ï}Á2£
Try it online!
or as a Test Suite
Explanation
œ # 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
answered 2 days ago
Emigna
44.8k432136
44.8k432136
Too bad we don't have acast to float
. I remember there was one in the Legacy, but I just looked it up and apparently it was astringified cast to float
, which is pretty useless since you want floats instead of strings to sort on.. xD
– Kevin Cruijssen
2 days ago
@KevinCruijssen: Yeah. We had anis_number
but unfortunately noto_number
.
– Emigna
2 days ago
add a comment |
Too bad we don't have acast to float
. I remember there was one in the Legacy, but I just looked it up and apparently it was astringified cast to float
, which is pretty useless since you want floats instead of strings to sort on.. xD
– Kevin Cruijssen
2 days ago
@KevinCruijssen: Yeah. We had anis_number
but unfortunately noto_number
.
– Emigna
2 days ago
Too bad we don't have a
cast to float
. I remember there was one in the Legacy, but I just looked it up and apparently it was a stringified cast to float
, which is pretty useless since you want floats instead of strings to sort on.. xD– Kevin Cruijssen
2 days ago
Too bad we don't have a
cast to float
. I remember there was one in the Legacy, but I just looked it up and apparently it was a stringified cast to float
, which is pretty useless since you want floats instead of strings to sort on.. xD– Kevin Cruijssen
2 days ago
@KevinCruijssen: Yeah. We had an
is_number
but unfortunately no to_number
.– Emigna
2 days ago
@KevinCruijssen: Yeah. We had an
is_number
but unfortunately no to_number
.– Emigna
2 days ago
add a comment |
up vote
3
down vote
JavaScript (ES6), 68 66 bytes
a=>[1,-1].map(n=>a.sort((a,b)=>[a%1||a]+b<[b%1||b]+a?n:-n).join``)
Try it online!
How?
We use the following test to compare two values in the input array:
[a % 1 || a] + b < [b % 1 || b] + a
The expression x % 1 || x
returns the decimal part of $x$ if $x$ is a decimal number, or leaves $x$ unchanged otherwise.
The expression [x % 1 || x] + y
coerces the above result to a string and concatenates it with the other value.
If there's a decimal number in the list, it must always be considered as the smallest value. By applying our conversion, a decimal number is turned into a string starting with "0."
, which is lexicographically ordered before anything else.
Examples:
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"
add a comment |
up vote
3
down vote
JavaScript (ES6), 68 66 bytes
a=>[1,-1].map(n=>a.sort((a,b)=>[a%1||a]+b<[b%1||b]+a?n:-n).join``)
Try it online!
How?
We use the following test to compare two values in the input array:
[a % 1 || a] + b < [b % 1 || b] + a
The expression x % 1 || x
returns the decimal part of $x$ if $x$ is a decimal number, or leaves $x$ unchanged otherwise.
The expression [x % 1 || x] + y
coerces the above result to a string and concatenates it with the other value.
If there's a decimal number in the list, it must always be considered as the smallest value. By applying our conversion, a decimal number is turned into a string starting with "0."
, which is lexicographically ordered before anything else.
Examples:
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"
add a comment |
up vote
3
down vote
up vote
3
down vote
JavaScript (ES6), 68 66 bytes
a=>[1,-1].map(n=>a.sort((a,b)=>[a%1||a]+b<[b%1||b]+a?n:-n).join``)
Try it online!
How?
We use the following test to compare two values in the input array:
[a % 1 || a] + b < [b % 1 || b] + a
The expression x % 1 || x
returns the decimal part of $x$ if $x$ is a decimal number, or leaves $x$ unchanged otherwise.
The expression [x % 1 || x] + y
coerces the above result to a string and concatenates it with the other value.
If there's a decimal number in the list, it must always be considered as the smallest value. By applying our conversion, a decimal number is turned into a string starting with "0."
, which is lexicographically ordered before anything else.
Examples:
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"
JavaScript (ES6), 68 66 bytes
a=>[1,-1].map(n=>a.sort((a,b)=>[a%1||a]+b<[b%1||b]+a?n:-n).join``)
Try it online!
How?
We use the following test to compare two values in the input array:
[a % 1 || a] + b < [b % 1 || b] + a
The expression x % 1 || x
returns the decimal part of $x$ if $x$ is a decimal number, or leaves $x$ unchanged otherwise.
The expression [x % 1 || x] + y
coerces the above result to a string and concatenates it with the other value.
If there's a decimal number in the list, it must always be considered as the smallest value. By applying our conversion, a decimal number is turned into a string starting with "0."
, which is lexicographically ordered before anything else.
Examples:
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"
edited 2 days ago
answered 2 days ago
Arnauld
68.7k584289
68.7k584289
add a comment |
add a comment |
up vote
3
down vote
Japt, 14 11 bytes
á m¬ñn é v2
Try it
1 byte saved thanks to Luis, please +1
his solution too.
á :Permutations
m :Map
¬ : Join
ñ :Sort by
n : Converting each to a number
é :Rotate right
v2 :Remove & return the first 2 elements
Ok, this is better!! damn!! thaté
was hidden all this time!!
– Luis felipe De jesus Munoz
2 days ago
add a comment |
up vote
3
down vote
Japt, 14 11 bytes
á m¬ñn é v2
Try it
1 byte saved thanks to Luis, please +1
his solution too.
á :Permutations
m :Map
¬ : Join
ñ :Sort by
n : Converting each to a number
é :Rotate right
v2 :Remove & return the first 2 elements
Ok, this is better!! damn!! thaté
was hidden all this time!!
– Luis felipe De jesus Munoz
2 days ago
add a comment |
up vote
3
down vote
up vote
3
down vote
Japt, 14 11 bytes
á m¬ñn é v2
Try it
1 byte saved thanks to Luis, please +1
his solution too.
á :Permutations
m :Map
¬ : Join
ñ :Sort by
n : Converting each to a number
é :Rotate right
v2 :Remove & return the first 2 elements
Japt, 14 11 bytes
á m¬ñn é v2
Try it
1 byte saved thanks to Luis, please +1
his solution too.
á :Permutations
m :Map
¬ : Join
ñ :Sort by
n : Converting each to a number
é :Rotate right
v2 :Remove & return the first 2 elements
edited 2 days ago
answered 2 days ago
Shaggy
18.1k21663
18.1k21663
Ok, this is better!! damn!! thaté
was hidden all this time!!
– Luis felipe De jesus Munoz
2 days ago
add a comment |
Ok, this is better!! damn!! thaté
was hidden all this time!!
– Luis felipe De jesus Munoz
2 days ago
Ok, this is better!! damn!! that
é
was hidden all this time!!– Luis felipe De jesus Munoz
2 days ago
Ok, this is better!! damn!! that
é
was hidden all this time!!– Luis felipe De jesus Munoz
2 days ago
add a comment |
up vote
3
down vote
Japt, 14 11 10 bytes
á m¬ñn gJò
Try it online!
Nice one. I hadá ®¬nÃn
for the first line - kicking myself that I didn't think of your way.
– Shaggy
2 days ago
12 bytes, using the-h
flag.
– Shaggy
2 days ago
11 bytes, using the-g
flag. Also works withí
instead ofï
.
– Shaggy
2 days ago
@Shaggy Excellent! Thanks!!
– Luis felipe De jesus Munoz
2 days ago
Dang! Looks like I gave up to soon; very nicely done.
– Shaggy
2 days ago
|
show 1 more comment
up vote
3
down vote
Japt, 14 11 10 bytes
á m¬ñn gJò
Try it online!
Nice one. I hadá ®¬nÃn
for the first line - kicking myself that I didn't think of your way.
– Shaggy
2 days ago
12 bytes, using the-h
flag.
– Shaggy
2 days ago
11 bytes, using the-g
flag. Also works withí
instead ofï
.
– Shaggy
2 days ago
@Shaggy Excellent! Thanks!!
– Luis felipe De jesus Munoz
2 days ago
Dang! Looks like I gave up to soon; very nicely done.
– Shaggy
2 days ago
|
show 1 more comment
up vote
3
down vote
up vote
3
down vote
Japt, 14 11 10 bytes
á m¬ñn gJò
Try it online!
Japt, 14 11 10 bytes
á m¬ñn gJò
Try it online!
edited 2 days ago
answered 2 days ago
Luis felipe De jesus Munoz
3,98911253
3,98911253
Nice one. I hadá ®¬nÃn
for the first line - kicking myself that I didn't think of your way.
– Shaggy
2 days ago
12 bytes, using the-h
flag.
– Shaggy
2 days ago
11 bytes, using the-g
flag. Also works withí
instead ofï
.
– Shaggy
2 days ago
@Shaggy Excellent! Thanks!!
– Luis felipe De jesus Munoz
2 days ago
Dang! Looks like I gave up to soon; very nicely done.
– Shaggy
2 days ago
|
show 1 more comment
Nice one. I hadá ®¬nÃn
for the first line - kicking myself that I didn't think of your way.
– Shaggy
2 days ago
12 bytes, using the-h
flag.
– Shaggy
2 days ago
11 bytes, using the-g
flag. Also works withí
instead ofï
.
– Shaggy
2 days ago
@Shaggy Excellent! Thanks!!
– Luis felipe De jesus Munoz
2 days ago
Dang! Looks like I gave up to soon; very nicely done.
– Shaggy
2 days ago
Nice one. I had
á ®¬nÃn
for the first line - kicking myself that I didn't think of your way.– Shaggy
2 days ago
Nice one. I had
á ®¬nÃn
for the first line - kicking myself that I didn't think of your way.– Shaggy
2 days ago
12 bytes, using the
-h
flag.– Shaggy
2 days ago
12 bytes, using the
-h
flag.– Shaggy
2 days ago
11 bytes, using the
-g
flag. Also works with í
instead of ï
.– Shaggy
2 days ago
11 bytes, using the
-g
flag. Also works with í
instead of ï
.– Shaggy
2 days ago
@Shaggy Excellent! Thanks!!
– Luis felipe De jesus Munoz
2 days ago
@Shaggy Excellent! Thanks!!
– Luis felipe De jesus Munoz
2 days ago
Dang! Looks like I gave up to soon; very nicely done.
– Shaggy
2 days ago
Dang! Looks like I gave up to soon; very nicely done.
– Shaggy
2 days ago
|
show 1 more comment
up vote
3
down vote
Jelly, 6 bytes
Œ!VṢ.ị
Try it online!
Explanation:
Œ!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)
I never program in Jelly, but.ị
is a pretty cool way of getting both the first and last item of a list. Nice answer! +1 from me.
– Kevin Cruijssen
2 days ago
1
@KevinCruijssen It actually gets the last and first item. :P
– Erik the Outgolfer
2 days ago
I've also never programmed in Jelly, but I'm confused as to how.ị
works. If I'm reading the docs correctly, I would thinkị
gets the element of y at floor(x) and ceil(x), and.
is0.5
. Doesn't that mean it will get elements of y at index 0 and 1?
– Cowabunghole
2 days ago
Is Jelly 1-based indexed? That would explain this behavior but I don't see anything about that in the docs.
– Cowabunghole
2 days ago
1
@Cowabunghole Yes, Jelly is 1-indexed.
– Erik the Outgolfer
2 days ago
|
show 2 more comments
up vote
3
down vote
Jelly, 6 bytes
Œ!VṢ.ị
Try it online!
Explanation:
Œ!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)
I never program in Jelly, but.ị
is a pretty cool way of getting both the first and last item of a list. Nice answer! +1 from me.
– Kevin Cruijssen
2 days ago
1
@KevinCruijssen It actually gets the last and first item. :P
– Erik the Outgolfer
2 days ago
I've also never programmed in Jelly, but I'm confused as to how.ị
works. If I'm reading the docs correctly, I would thinkị
gets the element of y at floor(x) and ceil(x), and.
is0.5
. Doesn't that mean it will get elements of y at index 0 and 1?
– Cowabunghole
2 days ago
Is Jelly 1-based indexed? That would explain this behavior but I don't see anything about that in the docs.
– Cowabunghole
2 days ago
1
@Cowabunghole Yes, Jelly is 1-indexed.
– Erik the Outgolfer
2 days ago
|
show 2 more comments
up vote
3
down vote
up vote
3
down vote
Jelly, 6 bytes
Œ!VṢ.ị
Try it online!
Explanation:
Œ!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)
Jelly, 6 bytes
Œ!VṢ.ị
Try it online!
Explanation:
Œ!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)
edited 2 days ago
answered 2 days ago
Erik the Outgolfer
30.6k429102
30.6k429102
I never program in Jelly, but.ị
is a pretty cool way of getting both the first and last item of a list. Nice answer! +1 from me.
– Kevin Cruijssen
2 days ago
1
@KevinCruijssen It actually gets the last and first item. :P
– Erik the Outgolfer
2 days ago
I've also never programmed in Jelly, but I'm confused as to how.ị
works. If I'm reading the docs correctly, I would thinkị
gets the element of y at floor(x) and ceil(x), and.
is0.5
. Doesn't that mean it will get elements of y at index 0 and 1?
– Cowabunghole
2 days ago
Is Jelly 1-based indexed? That would explain this behavior but I don't see anything about that in the docs.
– Cowabunghole
2 days ago
1
@Cowabunghole Yes, Jelly is 1-indexed.
– Erik the Outgolfer
2 days ago
|
show 2 more comments
I never program in Jelly, but.ị
is a pretty cool way of getting both the first and last item of a list. Nice answer! +1 from me.
– Kevin Cruijssen
2 days ago
1
@KevinCruijssen It actually gets the last and first item. :P
– Erik the Outgolfer
2 days ago
I've also never programmed in Jelly, but I'm confused as to how.ị
works. If I'm reading the docs correctly, I would thinkị
gets the element of y at floor(x) and ceil(x), and.
is0.5
. Doesn't that mean it will get elements of y at index 0 and 1?
– Cowabunghole
2 days ago
Is Jelly 1-based indexed? That would explain this behavior but I don't see anything about that in the docs.
– Cowabunghole
2 days ago
1
@Cowabunghole Yes, Jelly is 1-indexed.
– Erik the Outgolfer
2 days ago
I never program in Jelly, but
.ị
is a pretty cool way of getting both the first and last item of a list. Nice answer! +1 from me.– Kevin Cruijssen
2 days ago
I never program in Jelly, but
.ị
is a pretty cool way of getting both the first and last item of a list. Nice answer! +1 from me.– Kevin Cruijssen
2 days ago
1
1
@KevinCruijssen It actually gets the last and first item. :P
– Erik the Outgolfer
2 days ago
@KevinCruijssen It actually gets the last and first item. :P
– Erik the Outgolfer
2 days ago
I've also never programmed in Jelly, but I'm confused as to how
.ị
works. If I'm reading the docs correctly, I would think ị
gets the element of y at floor(x) and ceil(x), and .
is 0.5
. Doesn't that mean it will get elements of y at index 0 and 1?– Cowabunghole
2 days ago
I've also never programmed in Jelly, but I'm confused as to how
.ị
works. If I'm reading the docs correctly, I would think ị
gets the element of y at floor(x) and ceil(x), and .
is 0.5
. Doesn't that mean it will get elements of y at index 0 and 1?– Cowabunghole
2 days ago
Is Jelly 1-based indexed? That would explain this behavior but I don't see anything about that in the docs.
– Cowabunghole
2 days ago
Is Jelly 1-based indexed? That would explain this behavior but I don't see anything about that in the docs.
– Cowabunghole
2 days ago
1
1
@Cowabunghole Yes, Jelly is 1-indexed.
– Erik the Outgolfer
2 days ago
@Cowabunghole Yes, Jelly is 1-indexed.
– Erik the Outgolfer
2 days ago
|
show 2 more comments
up vote
3
down vote
Ruby, 56 45 bytes
->a{a.permutation.map{|p|p.join.to_f}.minmax}
Try it online!
-11 bytes, thanks Jordan
New contributor
1
Nice work! You can save 2 bytes by dropping the parentheses around your argument (->a{...
) and another 9 by using the handyminmax
method: tio.run/…
– Jordan
yesterday
add a comment |
up vote
3
down vote
Ruby, 56 45 bytes
->a{a.permutation.map{|p|p.join.to_f}.minmax}
Try it online!
-11 bytes, thanks Jordan
New contributor
1
Nice work! You can save 2 bytes by dropping the parentheses around your argument (->a{...
) and another 9 by using the handyminmax
method: tio.run/…
– Jordan
yesterday
add a comment |
up vote
3
down vote
up vote
3
down vote
Ruby, 56 45 bytes
->a{a.permutation.map{|p|p.join.to_f}.minmax}
Try it online!
-11 bytes, thanks Jordan
New contributor
Ruby, 56 45 bytes
->a{a.permutation.map{|p|p.join.to_f}.minmax}
Try it online!
-11 bytes, thanks Jordan
New contributor
edited yesterday
New contributor
answered 2 days ago
Travis
1313
1313
New contributor
New contributor
1
Nice work! You can save 2 bytes by dropping the parentheses around your argument (->a{...
) and another 9 by using the handyminmax
method: tio.run/…
– Jordan
yesterday
add a comment |
1
Nice work! You can save 2 bytes by dropping the parentheses around your argument (->a{...
) and another 9 by using the handyminmax
method: tio.run/…
– Jordan
yesterday
1
1
Nice work! You can save 2 bytes by dropping the parentheses around your argument (
->a{...
) and another 9 by using the handy minmax
method: tio.run/…– Jordan
yesterday
Nice work! You can save 2 bytes by dropping the parentheses around your argument (
->a{...
) and another 9 by using the handy minmax
method: tio.run/…– Jordan
yesterday
add a comment |
up vote
2
down vote
Pyth, 13 12 bytes
hM_BSvsM.p`M
Outputs in form [smallest, largest]
. Try it online here, or verify all the test cases at once here.
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
Edit: Saved a byte by taking stringification out of the mapping function. Previous version: hM_BSmvs`Md.p
add a comment |
up vote
2
down vote
Pyth, 13 12 bytes
hM_BSvsM.p`M
Outputs in form [smallest, largest]
. Try it online here, or verify all the test cases at once here.
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
Edit: Saved a byte by taking stringification out of the mapping function. Previous version: hM_BSmvs`Md.p
add a comment |
up vote
2
down vote
up vote
2
down vote
Pyth, 13 12 bytes
hM_BSvsM.p`M
Outputs in form [smallest, largest]
. Try it online here, or verify all the test cases at once here.
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
Edit: Saved a byte by taking stringification out of the mapping function. Previous version: hM_BSmvs`Md.p
Pyth, 13 12 bytes
hM_BSvsM.p`M
Outputs in form [smallest, largest]
. Try it online here, or verify all the test cases at once here.
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
Edit: Saved a byte by taking stringification out of the mapping function. Previous version: hM_BSmvs`Md.p
edited 2 days ago
answered 2 days ago
Sok
3,359722
3,359722
add a comment |
add a comment |
up vote
2
down vote
Perl 6, 41 bytes
{.max,.min}o+<<*.permutations.map(*.join)
Try it online!
Alternatives:
{.max,.min}o+<<*.permutations.map:{.join}
{.max,.min}o{[map +*.join,.permutations]}
{.max,.min}o{+<<map *.join,.permutations}
add a comment |
up vote
2
down vote
Perl 6, 41 bytes
{.max,.min}o+<<*.permutations.map(*.join)
Try it online!
Alternatives:
{.max,.min}o+<<*.permutations.map:{.join}
{.max,.min}o{[map +*.join,.permutations]}
{.max,.min}o{+<<map *.join,.permutations}
add a comment |
up vote
2
down vote
up vote
2
down vote
Perl 6, 41 bytes
{.max,.min}o+<<*.permutations.map(*.join)
Try it online!
Alternatives:
{.max,.min}o+<<*.permutations.map:{.join}
{.max,.min}o{[map +*.join,.permutations]}
{.max,.min}o{+<<map *.join,.permutations}
Perl 6, 41 bytes
{.max,.min}o+<<*.permutations.map(*.join)
Try it online!
Alternatives:
{.max,.min}o+<<*.permutations.map:{.join}
{.max,.min}o{[map +*.join,.permutations]}
{.max,.min}o{+<<map *.join,.permutations}
edited 2 days ago
answered 2 days ago
nwellnhof
5,8581121
5,8581121
add a comment |
add a comment |
up vote
1
down vote
Husk, 10 bytes
§,▼▲morṁsP
Try it online or verify all!
Explanation
§,▼▲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)
add a comment |
up vote
1
down vote
Husk, 10 bytes
§,▼▲morṁsP
Try it online or verify all!
Explanation
§,▼▲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)
add a comment |
up vote
1
down vote
up vote
1
down vote
Husk, 10 bytes
§,▼▲morṁsP
Try it online or verify all!
Explanation
§,▼▲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)
Husk, 10 bytes
§,▼▲morṁsP
Try it online or verify all!
Explanation
§,▼▲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)
answered 2 days ago
BMO
10.5k21880
10.5k21880
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f175999%2flargest-and-smallest-possible-number%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Wouldn't the first output be: 4422333355.55, 55.5544333322? Those are smaller and larger respectively.
– ouflak
2 days ago
@ouflak, you have to output the largest and smallest.
– Vedant Kandoi
2 days ago
1
Nevermind, see it now. Got confused with the decimal place.
– ouflak
2 days ago
Would
[[55.55,22,33,33,44],[44,33,33,22,55.55]]
be an acceptable output format?– Shaggy
2 days ago
1
Any way is fine @Jordan
– Vedant Kandoi
2 days ago