몇몇 친구, 그리고 친구의 친구들과 함께 비밀 코딩 클럽을 만들려고 해요. 모두가 서로를 아는 사이는 아니라서, 상대가 회원인지 알아볼 수 있는 비밀 악수를 만들기로 했어요. 사정을 모르는 사람은 아무도 이 암호를 풀 수 없게 하고 싶어요.
한 사람이 1과 31 사이의 숫자를 말하면, 다른 사람이 그 숫자를 일련의 동작으로 바꾸는 방식으로 암호를 설계했어요.
이번 과제는 1에서 31 사이의 숫자를 비밀 악수의 일련의 동작으로 바꾸는 거예요.
동작의 순서는 숫자를 이진수로 바꾼 다음, 그 숫자의 오른쪽 끝 다섯 자리를 보고 정해요. 가장 오른쪽 자리에서 시작해서 왼쪽으로 이동해요.
각 자릿수에 해당하는 동작은 다음과 같아요:
00001 = wink
00010 = double blink
00100 = close your eyes
01000 = jump
10000 = Reverse the order of the operations in the secret handshake.
9를 예로 들어볼까요?
1001이에요.wink예요.이것이 마지막 자리였으므로 최종 코드는 다음과 같아요:
wink, jump
이진수로 11010인 숫자 26이 주어지면 다음과 같은 동작이 나와요:
따라서 26의 비밀 악수는 다음과 같아요:
jump, double blink
이진수가 무엇인지, 어떻게 동작하는지 잘 모르겠다면 이진수 안내서를 참고해 보세요.
Exercism에 가입하고 Uiua 트랙을 연습 문제 100개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.