community
cancel
Showing results for 
Search instead for 
Did you mean: 
Do you have the skills to make it to the top? Subscribe to our weekly challenges. Try your best to solve the problem, share your solution, and see how others tackled the same problem. We share our answer too.
Weekly Challenge
Do you have the skills to make it to the top? Subscribe to our weekly challenges. Try your best to solve the problem, share your solution, and see how others tackled the same problem. We share our answer too.
Unable to display your progress at this time. Please try again a little later, or contact an administrator if you continue to see this error.
Getting started with Designer? | Start your journey with our new Learning Path!

Challenge #177: Ham Hamlet

Asteroid

A solution to last week's challenge can be found here

 

This challenge was created for a HackCU hackathon event in which teams were formed and were given 24 consecutive hours and Alteryx Designer to solve the challenge.

 

In this challenge you must break apart the given [encoded_string] into two character pairs and then build a decoder table, mapping the two-character pairs into ASCII characters to reveal a pig-latin encoded document.

 

ham_hamlet_poster_by_sandra_boynton.jpgTo solve, or not to solve: that is the question.

 

Spoiler
They gave us a=ac and y=qd.  I looked at the big nasty string and surmised that ks was a space since it appeared after acqd. Using that I could break it into words. From there I analyzed the most frequent words. The first one was a three letter word, so I guessed that 5c=e 7d=t and 8c=h since the is the most common 3 letter word. Then I saw number 4 and guessed that I=9C. For number #5, this handy site suggested that o=2d since it's the most popular 2 letter word. #6 I guessed that f=6c. Then for #9 I saw that 9c must be i. At this point I then assumed that the capital letters were simply created by capitalizing the second letter (ie 9c=i and 9C=I, ac=a and aC=A). This gave me most of the 26 letters needed to get the full list from the helper macro. I just kept going through the top of the list and trying to find cases where it had to be a certain letter missing.

Final look:

Annotation 2019-08-19 145710.jpg


Initial words after figuring out ks=space

Annotation 2019-08-19 150517.jpg

Bolide

Woo Hoo!  Solved it!  If I can be second to Patrick, I'm OK (for now) with that.

 

Workflow is messy, but my path is explained in the second spoiler.

Spoiler
Workflow 177.GIF

 

Spoiler
Steps 177.GIF

 

Highlighted
Magnetar
Magnetar

Doozy of a challenge! Lots of trial and error and best guesses.

Spoiler
First, separated the text into 2 character strings, and summarized to see which were the most popular. "ks" came up behind the givens, so assumed this represents a space. Also, 5c was next, so assumed this represents an "e"

Next, grabbed a list of letter popularity to see if that would work to decode,  from this website

image.png

Nope. It failed.

Next approach was MUCH more manual. 

Like @patrick_digan , decided to break the text up into what seemed like words. Then looked for words that begin with vowels (words that end in "yay"). Used letter popularity to assign vowels to codes, and then surmised that the second letter indicated case (5c=e, 5C=E):

image.png


Still not enough letters to test, so had to look at popular words (used the list on this website). Replaced the "known" letters to see if patterns were there. looking for and, of, -ing patterns, and but were enough letters to make the decoder macro work! image.png


Then a join, record id, summarize, and data cleanse finish up the process.

Haven't tackled the extra credit........ yet.....



Quasar

Yay to more puzzles!

 

Spoiler
I started out by spliting my text into character pairs. I then used the find/replace to append the mapping table. Based on the frequency and the fact that it was always after ay I noticed that ks is a space. I then kept skimming through the data, trying to fill in easy words, also knowing that a word ending in yay must start with a vowel. This is how I found and d in and. Thereafter I stumpled across anywhere and anyone that gave me a bunch of letters. Next came the giving me t, followed by s, u, i. By that point I'd also realised what makes a capital letter, easily getting me across the 26 character mark.

Challenge #177.PNGChallenge #177 result.PNG

 

Asteroid

Super fun challenge. This workflow killed my computer twice, and one time I hadn't saved anything

Written solve process:

Spoiler
I began by identifying the space character and then splitting up the string. From here I organized my workflow so that i could do an analysis of words and letter groups. Using this website I started to pick out the most common vowels. After finding out about the Capital letters being a freebie I reorganized my cipher table to 52 rows and laid out the given letters.

As I cycled through solved letters and words I began to analyse 10 character words to find the easy letters between.

(after solving It, At, The, Is, and To I had enough to finish) 

To get up to 26 solved letters I began filling in the pattern for b-->D, and finishing off 2 letter words

Helpful resources were to and from piglatin translators (could have used my tool but would have been slow)

Note: For some reason I couldn't connect the macro output to a find replace once I had made 26 matches.

Workflow:

Spoiler
ZHSOL.PNG
Alteryx Certified Partner
Alteryx Certified Partner

Finally solved it, with a lot of trial and error ... it's not a really elegant elegant solution, in positive terms, it's very "interactive" (driven by specific selections or input)

 

Spoiler
Like @patrick_digan , I started identifying the whitespace character (3rd most character, next to "acqd" or "qdacqd"), and made the guess, that second character indicates upper- or lowercase


20-08-_2019_15-27-19.png


Identified the vowels (selected the words ending with "qdacqd", parsed out first character, sorted by count and assigned the deciphered letter by frequency (according to https://en.wikipedia.org/wiki/Letter_frequency)

20-08-_2019_15-27-19.png

after trying some other approaches (most frequent characters, character pairs, doublette letters) I ended up filtering 2 letter words beginnig with specific vowels (i.e. 10 characters encoded including  "qdacqd" at the end) and assigned replacement by word frequency (according to https://www.eslkidstuff.com/wordlists/WordList300.pdf, e.q. most frequent 2 letter word starting with "a" is "at" - most frequent in my list was "ay", so I used the second on the list). This worked fine for "o", "i", "a", the result for for "u" dissented to the result from "i"

20-08-_2019_15-52-05.png

filtered words with "e" as a second letter ("be", "he", "me") - I expected these words to start with the encoded "e" and end with "acqd"

20-08-_2019_16-05-15.png






Alteryx
Alteryx

I Eventually got there. Attached is my completed workflow 

Spoiler
1) Like most people my analysis started with figuring out that ks indicated a space, this allowed me to parse out individual words.
2) I used this helpful quiz to decide the words I wanted to decode first, starting with the smallest words. This quiz gave me the most commonly used words in Hamlet
3) From there I used an English to Pig-Latin converter to assist me with how these common words would be spelled in Pig-Latin. I am not fluent. 
4) I for sure used a brute-force approach which included tons of trial and error. The tool containers indicate the words I was able to decode in that data stream by placing missing letters with potential words from the quiz listed above. 
Magnetar
Magnetar

This was a neat one

 

Spoiler
I probably cheated on the spirit of the challenge, but I think my answer is fun so I went with it, after attempting a similar manual process to others here.



Since we knew that only ASCII characters were in scope, I split out the encoded string into 2 character pairs and generated a list of all printable ASCII characters.  Then I used an Append Fields tool to create a combination of all two character pairs/ascii characters, and fed this into the macro.  This is very much the "shotgun" approach - while I had ~23,000 incorrect values, since I had at least 26 right, the macro spit out the full cipher key, and I was able to feed this into the rest of the process.


claje_177.PNG


theoretically something similar could be done by limiting these scales based on our known information, with manual review to break the cipher.


Magnetar
Magnetar
@Claje, cool approach!!!