Skip to content

Instantly share code, notes, and snippets.

@614project
Forked from dn1t/example.js
Created September 23, 2021 00:37
Show Gist options
  • Select an option

  • Save 614project/fc4b84da1f1e7c86f884e7c71bebe06c to your computer and use it in GitHub Desktop.

Select an option

Save 614project/fc4b84da1f1e7c86f884e7c71bebe06c to your computer and use it in GitHub Desktop.
솔브인코딩
textToSolve('솔바브보') // 바보바보바보솔브바보바보솔브솔브바보솔브솔브솔브솔브바보바보솔브바보솔브솔브바보솔브바보솔브솔브바보바보바보솔브바보솔브바보바보바보솔브바보바보솔브솔브솔브솔브바보솔브솔브바보솔브바보솔브솔브바보바보바보솔브바보솔브바보바보바보솔브바보바보바보솔브솔브솔브바보솔브솔브솔브바보바보솔브솔브바보바보바보솔브바보솔브바보바보바보솔브바보바보솔브솔브바보바보바보솔브바보바보솔브바보솔브솔브
solveToText('바보바보바보솔브바보바보솔브솔브바보솔브솔브솔브솔브바보바보솔브바보솔브솔브바보솔브바보솔브솔브바보바보바보솔브바보솔브바보바보바보솔브바보바보솔브솔브솔브솔브바보솔브솔브바보솔브바보솔브솔브바보바보바보솔브바보솔브바보바보바보솔브바보바보바보솔브솔브솔브바보솔브솔브솔브바보바보솔브솔브바보바보바보솔브바보솔브바보바보바보솔브바보바보솔브솔브바보바보바보솔브바보바보솔브바보솔브솔브') // 솔바브보
const _zero = '솔브',
_one = '바보';
const textToSolve = (text) =>
Array.from(new TextEncoder().encode(text))
.flatMap((b) => b.toString(2).padStart(8, 0).split(''))
.map((b) => (Number(b) === 0 ? _zero : _one))
.join('');
const solveToText = (solve) => {
const bitArray = solve.replaceAll(_zero, 0).replaceAll(_one, 1).split('').map(Number);
const byteArray = (() => {
const chunk = [];
for (let i = 0; i < bitArray.length; i += 8) chunk.push(bitArray.slice(i, 8 + i).join(''));
return chunk;
})().map((b) => parseInt(b, 2));
const result = new TextDecoder().decode(Uint8Array.from(byteArray));
return result;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment