몇몇 친구, 그리고 친구의 친구들과 함께 비밀 코딩 클럽을 만들려고 해요. 모두가 서로를 아는 사이는 아니라서, 상대가 회원인지 알아볼 수 있는 비밀 악수를 만들기로 했어요. 사정을 모르는 사람은 아무도 이 암호를 풀 수 없게 하고 싶어요.
한 사람이 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
이진수가 무엇인지, 어떻게 동작하는지 잘 모르겠다면 이진수 안내서를 참고해 보세요.
동작 순서를 null로 끝나는 문자열로 출력해요. 구분자로는 쉼표와 공백을 사용해요.
Exercism에 가입하고 ARM64 Assembly 트랙을 연습 문제 78개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.