Advent of Code is back! Unwrap daily challenges to sharpen your Alteryx skills and earn badges along the way! Learn more now.

Weekly Challenges

Solve the challenge, share your solution and summit the ranks of our Community!

Also available in | Français | Português | Español | 日本語
IDEAS WANTED

Want to get involved? We're always looking for ideas and content for Weekly Challenges.

SUBMIT YOUR IDEA
SOLVED

Challenge #165: KRYPTOS!!!

Thableaus
17 - Castor
17 - Castor

Challenge #165, done.

 

Spoiler
Section I and II done. Really want to try Section III and IV with more time.

Challenge_165.PNG

Cheers,

JohnJPS
15 - Aurora

Section III solved more formally. This solves the Transposition Cipher using an iterative macro wrapped in a loop controller macro, and doesn't rely on specific values that need to be known ahead of time. The decoder outputs over 3,000 potential solutions, which is small enough to scan with the human eye and spot the solution.  For a larger input, we could easily scan for "contains actual words" or some such in the filter, rather than filtering for the known decoded text. As it happens, 4 different settings of the variables I used in the decoding algorithm yielded the right answer.  This suggests optimizations may be possible. But for now I'm good... on to Section IV!

Spoiler
Solution just calls the DecoderSolution just calls the DecoderLoop ControllerLoop ControllerLoop IteratorLoop Iterator

 

pasccout
8 - Asteroid

Nice challenge... Will have to come back for sections 3 and 4...

PhilipMannering
16 - Nebula
16 - Nebula

Parts I - IV complete. Very fun. Solution attached.

 

Spoiler
WorkflowWorkflowMacroMacro

Section III and IV coming soon....

T_Willins
14 - Magnetar
14 - Magnetar

My solutions.  Still working on the indecipherable.  If I don't make it to Inspire, I may have succeeded and the NSA has me...

Spoiler
Workflow 165.1.GIFWorkflow 165.2.GIFWorkflow 165.3.GIFWorkflow 165.4.GIF
bkclaw113
9 - Comet

This was fun, posting solutions for sections 1 and 2 now, but will circle back on section 3.

estherb47
15 - Aurora
15 - Aurora

Might be one of my favorites so far! Lots of offline thinking to try to streamline a solution that would also work with any length keyword2. Here is my solution to Sections 1 & 2.

 

Spoiler
Firstly, create the Vigenere wheel. Not too difficult. Generate letters of the alphabet using Generate Rows and my new favorites CharToInt and CharFromInt functions, and union that with the keyword KRYPTOS. Add a row ID to keep the original order. A unique tool removes the duplicate letters, then rebuild the order with a sort, and concatenate back into a single string using Summarize.

image.png

To create the decoding wheel, tokenize again, join in the Vigenere wheel created above, and then rebuild the decoding wheel with String functions. I split the Vigenere wheel text into 2 pieces. The first piece has where the first letter of the keyword starts, and continues to the end of the Vigenere string, and the second contains all of the other letters. Accomplished using FindString([VigenereWheel], [keyword2]) to find the starting position of the match, and Substring functions to find the first part of the string and the remaining text. For the first part, look into the VigenereWheel, start at the Position (that FindString function above) and continue until the end of the Vigenere string. Then the second hald was another Substring, starting at position 0, and continuing to position calculated by the FindString function. Joined those together with a simple concatenation.image.png

 

Now onto solving. Another Regex tokenize to split the encoded text into columns, then add an ordering field to rebuild everything to the proper order. Then the part to make the length of the keyword dynamic. According to the pages read, the data needs to be chunked according to the length of the keyword, to relate the encoded text to the correct line to decode. So here, I figure out the number of characters in the keyword string (let's call it x), and use a MultiRow formula tool to number the rows from 1 to x. 

image.png

 

Attached is the workflow.

image.png

 

Will continue to work on Section III

 

Cheers!

Esther

TerryT
Alteryx Alumni (Retired)

Great responses!!!  Too many to select one as a solution.  I gathered my favorite bits and pieces from your solutions and came up with the following for Sections I-III:

 

Spoiler
KRYPTOS_SOLUTION.PNG

This is a REALLY AMAZING community!

JohnJPS
15 - Aurora

Great challenge and I still fully intend to try a few brute force things on Section 4.  :-)

Thanks!

kat
12 - Quasar

What a fun challenge! Based on all the great learnings from the lead up challenges, section I and II were quite doable. Then came section III... I did something, but it seems like a bit of an easy way out. Curious to see what better way others came up with.

 

Spoiler
Section ISection ISection IISection IISection IIISection III
Section III feels a bit like a cop-out, as I essentially just created a mapping table to decrypt it on. What got me, in doing it differently, was dealing with the varying lengths...