처음에 뭔가 했다가, 점자인 것 같았다.
점자 하나를 구조화하여, 필요한 문자만 매핑시켜서 dictionary 타입에 저장하고, key, value를 이용해 적절히 검색하면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | import os def decode_braille_array(braille_array): """ - Braille Unit Numbering Example - * 12 ** 34 ==> 1346 * 56 """ braille_mapped_dict = {'?': 356, '.': 5, ',': 3, 'a': 1, 'b': 13, 'c': 12, 'd': 124, 'e': 14, 'f': 123, 'g': 1234, 'h': 134, 'i': 23, 'j': 234, 'k': 15, 'l': 135, 'm': 125, 'n': 1245, 'o': 145, 'p': 1235, 'q': 12345, 'r': 1345, 's': 235, 't': 2345, 'u': 156, 'v': 1356, 'w': 2346, 'x': 1256, 'y': 12456, 'z': 1456} result = "" print("") for idx in range(1, len(braille_array) - 1): if braille_array[0] == 6: if braille_array[idx] == ' ': result += braille_array[idx] else: result += {value:key for key, value in braille_mapped_dict.items()}[braille_array[idx]].upper() return result def main(): encoded = [6, 2345, 134, 23, 235, ' ', 12, 134, 1, 135, 135, 14, 1245, 1234, 14, ' ', 134, 1, 235, ' ', 13, 14, 14, 1245, ' ', 2346, 1345, 23, 2345, 2345, 14, 1245, ' ', 23, 1245, ' ', 13, 1345, 1, 23, 135, 135, 14, 3, ' ', 2346, 134, 1, 2345, ' ', 2346, 1, 235, ' ', 2345, 134, 14, ' ', 123, 23, 1345, 235, 2345, 1245, ' ', 1, 125, 14, ' ', 145, 123, ' ', 23, 2345, 235, ' ', 23, 1245, 1356, 14, 1245, 2345, 145, 1345, 356] print(decode_braille_array(encoded)) if __name__ == '__main__': main() | cs |
답은 이런 식으로 나온다. BRAILLE을 발명한 사람의 First Name이 정답이다.
답은 구글신에게...
'[Wargame Write-up] > Net-Force' 카테고리의 다른 글
[Net-Force] [Java Applet] 4. Simple encoding (0) | 2017.03.12 |
---|---|
[Net-Force] [Java Applet] 3. Let me in!!! (0) | 2017.03.12 |
[Net-Force] [Steganography] 2. Go Holland Go! (0) | 2017.03.07 |
[Net-Force] [internet] 1. Flash Login (0) | 2017.03.07 |
[Net-Force] [Cryptography] 3. Sea Code (0) | 2017.01.11 |