Make a Bowl of Alphabet SoupPrint custom alphabetNumbers for LettersAlphabet to Number and Number to AlphabetRoll the Alphabet into a SpiralBuild an Alphabet PyramidFizz-Buzzify a StringSemi-Diagonal AlphabetMake an alphabet searchlight!The Speed of LettersWrite a function/method that takes in a string and spells that word out using the NATO Phonetic Alphabet. Titlecase optional
How can an organ that provides biological immortality be unable to regenerate?
Showing mass murder in a kid's book
Why do Radio Buttons not fill the entire outer circle?
Does capillary rise violate hydrostatic paradox?
What do the positive and negative (+/-) transmit and receive pins mean on Ethernet cables?
Are hand made posters acceptable in Academia?
Magnifying glass in hyperbolic space
Pre-Employment Background Check With Consent For Future Checks
What is this high flying aircraft over Pennsylvania?
Asserting that Atheism and Theism are both faith based positions
is this saw blade faulty?
Is divisi notation needed for brass or woodwind in an orchestra?
Find a point shared by maximum segments
Is there a distance limit for minecart tracks?
When is the exact date for EOL of Ubuntu 14.04 LTS?
Why is implicit conversion not ambiguous for non-primitive types?
Strange behavior in TikZ draw command
How do you say "Trust your struggle." in French?
What should be the ideal length of sentences in a blog post for ease of reading?
Why is "la Gestapo" feminine?
How to get directions in deep space?
Should a narrator ever describe things based on a character's view instead of facts?
Make a Bowl of Alphabet Soup
How do you justify more code being written by following clean code practices?
Make a Bowl of Alphabet Soup
Print custom alphabetNumbers for LettersAlphabet to Number and Number to AlphabetRoll the Alphabet into a SpiralBuild an Alphabet PyramidFizz-Buzzify a StringSemi-Diagonal AlphabetMake an alphabet searchlight!The Speed of LettersWrite a function/method that takes in a string and spells that word out using the NATO Phonetic Alphabet. Titlecase optional
$begingroup$
This is what we'll call a bowl of alphabet soup - a roughly circular ascii-art shape with the 26 uppercase English letters (A-Z) arranged clockwise to form the perimeter:
XYZABC
VW DE
U F
T G
S H
RQ JI
PONMLK
Write a program that takes in a single letter character, A-Z, and outputs that same bowl of alphabet soup "rotated", so to speak, so the input letter appears where the A
does in the example above and the rest of the alphabet cycles fully around clockwise.
So the output for input A
would be that same original bowl of alphabet soup.
And the output for input B
would be this one:
YZABCD
WX EF
V G
U H
T I
SR KJ
QPONML
Likewise the output for H
would be:
EFGHIJ
CD KL
B M
A N
Z O
YX QP
WVUTSR
Or for Z
:
WXYZAB
UV CD
T E
S F
R G
QP IH
ONMLKJ
This needs to work for all 26 letters, A through Z.
Details:
- You can assume the only input will be a single letter, A through Z.
- If convenient you may use lowercase a-z for input and/or output, you can even mix and match lower and uppercase.
- The alphabet order must cycle clockwise, not counter-clockwise.
- You must use spaces, not something else, to indent and fill the soup bowl.
- There may be leading or trailing newlines or spaces in the output as long as the soup bowl is arranged properly.
- Note that the bowl shape is 12 characters wide by 7 tall to make it appear roughly circular as text. Your bowls need to be the same shape.
This is code golf so the shortest code wins!
code-golf string ascii-art
New contributor
$endgroup$
add a comment |
$begingroup$
This is what we'll call a bowl of alphabet soup - a roughly circular ascii-art shape with the 26 uppercase English letters (A-Z) arranged clockwise to form the perimeter:
XYZABC
VW DE
U F
T G
S H
RQ JI
PONMLK
Write a program that takes in a single letter character, A-Z, and outputs that same bowl of alphabet soup "rotated", so to speak, so the input letter appears where the A
does in the example above and the rest of the alphabet cycles fully around clockwise.
So the output for input A
would be that same original bowl of alphabet soup.
And the output for input B
would be this one:
YZABCD
WX EF
V G
U H
T I
SR KJ
QPONML
Likewise the output for H
would be:
EFGHIJ
CD KL
B M
A N
Z O
YX QP
WVUTSR
Or for Z
:
WXYZAB
UV CD
T E
S F
R G
QP IH
ONMLKJ
This needs to work for all 26 letters, A through Z.
Details:
- You can assume the only input will be a single letter, A through Z.
- If convenient you may use lowercase a-z for input and/or output, you can even mix and match lower and uppercase.
- The alphabet order must cycle clockwise, not counter-clockwise.
- You must use spaces, not something else, to indent and fill the soup bowl.
- There may be leading or trailing newlines or spaces in the output as long as the soup bowl is arranged properly.
- Note that the bowl shape is 12 characters wide by 7 tall to make it appear roughly circular as text. Your bowls need to be the same shape.
This is code golf so the shortest code wins!
code-golf string ascii-art
New contributor
$endgroup$
2
$begingroup$
Great challenge! It initially seems easy, but it's not
$endgroup$
– Luis Mendo
42 mins ago
add a comment |
$begingroup$
This is what we'll call a bowl of alphabet soup - a roughly circular ascii-art shape with the 26 uppercase English letters (A-Z) arranged clockwise to form the perimeter:
XYZABC
VW DE
U F
T G
S H
RQ JI
PONMLK
Write a program that takes in a single letter character, A-Z, and outputs that same bowl of alphabet soup "rotated", so to speak, so the input letter appears where the A
does in the example above and the rest of the alphabet cycles fully around clockwise.
So the output for input A
would be that same original bowl of alphabet soup.
And the output for input B
would be this one:
YZABCD
WX EF
V G
U H
T I
SR KJ
QPONML
Likewise the output for H
would be:
EFGHIJ
CD KL
B M
A N
Z O
YX QP
WVUTSR
Or for Z
:
WXYZAB
UV CD
T E
S F
R G
QP IH
ONMLKJ
This needs to work for all 26 letters, A through Z.
Details:
- You can assume the only input will be a single letter, A through Z.
- If convenient you may use lowercase a-z for input and/or output, you can even mix and match lower and uppercase.
- The alphabet order must cycle clockwise, not counter-clockwise.
- You must use spaces, not something else, to indent and fill the soup bowl.
- There may be leading or trailing newlines or spaces in the output as long as the soup bowl is arranged properly.
- Note that the bowl shape is 12 characters wide by 7 tall to make it appear roughly circular as text. Your bowls need to be the same shape.
This is code golf so the shortest code wins!
code-golf string ascii-art
New contributor
$endgroup$
This is what we'll call a bowl of alphabet soup - a roughly circular ascii-art shape with the 26 uppercase English letters (A-Z) arranged clockwise to form the perimeter:
XYZABC
VW DE
U F
T G
S H
RQ JI
PONMLK
Write a program that takes in a single letter character, A-Z, and outputs that same bowl of alphabet soup "rotated", so to speak, so the input letter appears where the A
does in the example above and the rest of the alphabet cycles fully around clockwise.
So the output for input A
would be that same original bowl of alphabet soup.
And the output for input B
would be this one:
YZABCD
WX EF
V G
U H
T I
SR KJ
QPONML
Likewise the output for H
would be:
EFGHIJ
CD KL
B M
A N
Z O
YX QP
WVUTSR
Or for Z
:
WXYZAB
UV CD
T E
S F
R G
QP IH
ONMLKJ
This needs to work for all 26 letters, A through Z.
Details:
- You can assume the only input will be a single letter, A through Z.
- If convenient you may use lowercase a-z for input and/or output, you can even mix and match lower and uppercase.
- The alphabet order must cycle clockwise, not counter-clockwise.
- You must use spaces, not something else, to indent and fill the soup bowl.
- There may be leading or trailing newlines or spaces in the output as long as the soup bowl is arranged properly.
- Note that the bowl shape is 12 characters wide by 7 tall to make it appear roughly circular as text. Your bowls need to be the same shape.
This is code golf so the shortest code wins!
code-golf string ascii-art
code-golf string ascii-art
New contributor
New contributor
New contributor
asked 1 hour ago
Discrete GamesDiscrete Games
47126
47126
New contributor
New contributor
2
$begingroup$
Great challenge! It initially seems easy, but it's not
$endgroup$
– Luis Mendo
42 mins ago
add a comment |
2
$begingroup$
Great challenge! It initially seems easy, but it's not
$endgroup$
– Luis Mendo
42 mins ago
2
2
$begingroup$
Great challenge! It initially seems easy, but it's not
$endgroup$
– Luis Mendo
42 mins ago
$begingroup$
Great challenge! It initially seems easy, but it's not
$endgroup$
– Luis Mendo
42 mins ago
add a comment |
4 Answers
4
active
oldest
votes
$begingroup$
05AB1E, 21 bytes
A roughly straightforward approach. Most likely golfable.
Code:
2AA¹k._•1못*Ć,ãiDΣ•Λ
Try it online!
$endgroup$
add a comment |
$begingroup$
JavaScript (Node.js), 121 bytes
c=>`2XYZABC
0VW5DE
U9F
T9G
S9H
0RQ5JI
2PONMLK`.replace(/./g,x=>1/x?''.padEnd(-~x):(B=Buffer)([65+([a,b]=B(c+x),a+b)%26]))
Try it online!
$endgroup$
add a comment |
$begingroup$
Python 2, 129 bytes
lambda x:''.join((i,chr((ord(x)+ord(i))%26+65),' '*5)[ord(i)/46]for i in''' XYZABC
VW] DE
U]]F
T]]G
S]]H
RQ] JI
PONMLK''')
Try it online!
$endgroup$
add a comment |
$begingroup$
MATL, 49 bytes
7I8*32tvB[1b]&Zvc2Y2j7+_YSy&f7-w4-_Z;YPE,&S])yg(
What a mess. But it was fun writing. There's even an arctangent involved.
Try it online!
$endgroup$
$begingroup$
Um... what does the arctan do? Anything with the slightly circular shape? ;-)
$endgroup$
– Erik the Outgolfer
7 mins ago
$begingroup$
@EriktheOutgolfer :-? It sorts the non-space entries by their angle with respect to center of the bowl. That defines the order in which letters must be written. I'll add a more detailed explanation tomorrow if I have time
$endgroup$
– Luis Mendo
4 mins ago
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "200"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Discrete Games is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
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%2f181843%2fmake-a-bowl-of-alphabet-soup%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
05AB1E, 21 bytes
A roughly straightforward approach. Most likely golfable.
Code:
2AA¹k._•1못*Ć,ãiDΣ•Λ
Try it online!
$endgroup$
add a comment |
$begingroup$
05AB1E, 21 bytes
A roughly straightforward approach. Most likely golfable.
Code:
2AA¹k._•1못*Ć,ãiDΣ•Λ
Try it online!
$endgroup$
add a comment |
$begingroup$
05AB1E, 21 bytes
A roughly straightforward approach. Most likely golfable.
Code:
2AA¹k._•1못*Ć,ãiDΣ•Λ
Try it online!
$endgroup$
05AB1E, 21 bytes
A roughly straightforward approach. Most likely golfable.
Code:
2AA¹k._•1못*Ć,ãiDΣ•Λ
Try it online!
answered 37 mins ago
AdnanAdnan
35.8k562225
35.8k562225
add a comment |
add a comment |
$begingroup$
JavaScript (Node.js), 121 bytes
c=>`2XYZABC
0VW5DE
U9F
T9G
S9H
0RQ5JI
2PONMLK`.replace(/./g,x=>1/x?''.padEnd(-~x):(B=Buffer)([65+([a,b]=B(c+x),a+b)%26]))
Try it online!
$endgroup$
add a comment |
$begingroup$
JavaScript (Node.js), 121 bytes
c=>`2XYZABC
0VW5DE
U9F
T9G
S9H
0RQ5JI
2PONMLK`.replace(/./g,x=>1/x?''.padEnd(-~x):(B=Buffer)([65+([a,b]=B(c+x),a+b)%26]))
Try it online!
$endgroup$
add a comment |
$begingroup$
JavaScript (Node.js), 121 bytes
c=>`2XYZABC
0VW5DE
U9F
T9G
S9H
0RQ5JI
2PONMLK`.replace(/./g,x=>1/x?''.padEnd(-~x):(B=Buffer)([65+([a,b]=B(c+x),a+b)%26]))
Try it online!
$endgroup$
JavaScript (Node.js), 121 bytes
c=>`2XYZABC
0VW5DE
U9F
T9G
S9H
0RQ5JI
2PONMLK`.replace(/./g,x=>1/x?''.padEnd(-~x):(B=Buffer)([65+([a,b]=B(c+x),a+b)%26]))
Try it online!
answered 19 mins ago
ArnauldArnauld
79.2k796329
79.2k796329
add a comment |
add a comment |
$begingroup$
Python 2, 129 bytes
lambda x:''.join((i,chr((ord(x)+ord(i))%26+65),' '*5)[ord(i)/46]for i in''' XYZABC
VW] DE
U]]F
T]]G
S]]H
RQ] JI
PONMLK''')
Try it online!
$endgroup$
add a comment |
$begingroup$
Python 2, 129 bytes
lambda x:''.join((i,chr((ord(x)+ord(i))%26+65),' '*5)[ord(i)/46]for i in''' XYZABC
VW] DE
U]]F
T]]G
S]]H
RQ] JI
PONMLK''')
Try it online!
$endgroup$
add a comment |
$begingroup$
Python 2, 129 bytes
lambda x:''.join((i,chr((ord(x)+ord(i))%26+65),' '*5)[ord(i)/46]for i in''' XYZABC
VW] DE
U]]F
T]]G
S]]H
RQ] JI
PONMLK''')
Try it online!
$endgroup$
Python 2, 129 bytes
lambda x:''.join((i,chr((ord(x)+ord(i))%26+65),' '*5)[ord(i)/46]for i in''' XYZABC
VW] DE
U]]F
T]]G
S]]H
RQ] JI
PONMLK''')
Try it online!
answered 14 mins ago
Erik the OutgolferErik the Outgolfer
32.6k429105
32.6k429105
add a comment |
add a comment |
$begingroup$
MATL, 49 bytes
7I8*32tvB[1b]&Zvc2Y2j7+_YSy&f7-w4-_Z;YPE,&S])yg(
What a mess. But it was fun writing. There's even an arctangent involved.
Try it online!
$endgroup$
$begingroup$
Um... what does the arctan do? Anything with the slightly circular shape? ;-)
$endgroup$
– Erik the Outgolfer
7 mins ago
$begingroup$
@EriktheOutgolfer :-? It sorts the non-space entries by their angle with respect to center of the bowl. That defines the order in which letters must be written. I'll add a more detailed explanation tomorrow if I have time
$endgroup$
– Luis Mendo
4 mins ago
add a comment |
$begingroup$
MATL, 49 bytes
7I8*32tvB[1b]&Zvc2Y2j7+_YSy&f7-w4-_Z;YPE,&S])yg(
What a mess. But it was fun writing. There's even an arctangent involved.
Try it online!
$endgroup$
$begingroup$
Um... what does the arctan do? Anything with the slightly circular shape? ;-)
$endgroup$
– Erik the Outgolfer
7 mins ago
$begingroup$
@EriktheOutgolfer :-? It sorts the non-space entries by their angle with respect to center of the bowl. That defines the order in which letters must be written. I'll add a more detailed explanation tomorrow if I have time
$endgroup$
– Luis Mendo
4 mins ago
add a comment |
$begingroup$
MATL, 49 bytes
7I8*32tvB[1b]&Zvc2Y2j7+_YSy&f7-w4-_Z;YPE,&S])yg(
What a mess. But it was fun writing. There's even an arctangent involved.
Try it online!
$endgroup$
MATL, 49 bytes
7I8*32tvB[1b]&Zvc2Y2j7+_YSy&f7-w4-_Z;YPE,&S])yg(
What a mess. But it was fun writing. There's even an arctangent involved.
Try it online!
edited 10 mins ago
answered 15 mins ago
Luis MendoLuis Mendo
74.8k888291
74.8k888291
$begingroup$
Um... what does the arctan do? Anything with the slightly circular shape? ;-)
$endgroup$
– Erik the Outgolfer
7 mins ago
$begingroup$
@EriktheOutgolfer :-? It sorts the non-space entries by their angle with respect to center of the bowl. That defines the order in which letters must be written. I'll add a more detailed explanation tomorrow if I have time
$endgroup$
– Luis Mendo
4 mins ago
add a comment |
$begingroup$
Um... what does the arctan do? Anything with the slightly circular shape? ;-)
$endgroup$
– Erik the Outgolfer
7 mins ago
$begingroup$
@EriktheOutgolfer :-? It sorts the non-space entries by their angle with respect to center of the bowl. That defines the order in which letters must be written. I'll add a more detailed explanation tomorrow if I have time
$endgroup$
– Luis Mendo
4 mins ago
$begingroup$
Um... what does the arctan do? Anything with the slightly circular shape? ;-)
$endgroup$
– Erik the Outgolfer
7 mins ago
$begingroup$
Um... what does the arctan do? Anything with the slightly circular shape? ;-)
$endgroup$
– Erik the Outgolfer
7 mins ago
$begingroup$
@EriktheOutgolfer :-? It sorts the non-space entries by their angle with respect to center of the bowl. That defines the order in which letters must be written. I'll add a more detailed explanation tomorrow if I have time
$endgroup$
– Luis Mendo
4 mins ago
$begingroup$
@EriktheOutgolfer :-? It sorts the non-space entries by their angle with respect to center of the bowl. That defines the order in which letters must be written. I'll add a more detailed explanation tomorrow if I have time
$endgroup$
– Luis Mendo
4 mins ago
add a comment |
Discrete Games is a new contributor. Be nice, and check out our Code of Conduct.
Discrete Games is a new contributor. Be nice, and check out our Code of Conduct.
Discrete Games is a new contributor. Be nice, and check out our Code of Conduct.
Discrete Games is a new contributor. Be nice, and check out our Code of Conduct.
If this is an answer to a challenge…
…Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.
…Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
Explanations of your answer make it more interesting to read and are very much encouraged.…Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.
More generally…
…Please make sure to answer the question and provide sufficient detail.
…Avoid asking for help, clarification or responding to other answers (use comments instead).
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
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%2f181843%2fmake-a-bowl-of-alphabet-soup%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');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
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');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
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');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
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
2
$begingroup$
Great challenge! It initially seems easy, but it's not
$endgroup$
– Luis Mendo
42 mins ago