Lexiconia라는 온라인 멀티플레이어 게임을 만드는 회사에서 일하고 있어요.
게임을 하려면 각 플레이어는 13개의 글자를 받고, 그 글자들을 재배열해서 단어를 만들어야 해요. 글자마다 점수가 다른데, 어떤 글자는 다른 글자보다 단어를 만들기가 더 쉽거든요.
게임은 처음에 영어로 출시했는데 인기가 아주 많아요. 그래서 이제 회사는 다른 언어로도 확장하려고 해요.
언어마다 글자의 점수를 다르게 지원해야 해요. 점수는 그 언어에서 각 글자가 다른 글자에 비해 얼마나 자주 쓰이는지로 정해져요.
예를 들어 'C'는 영어에서 꽤 흔한 글자라서 3점밖에 안 돼요. 그런데 노르웨이어에서는 아주 드문 글자라서 10점이에요.
새로운 언어를 더 쉽게 추가하려면, 팀에서 게임에 글자와 점수를 저장하는 방식을 바꿔야 해요.
게임에서 글자와 각 글자의 점수를 담은 데이터 형식을 바꾸는 것이 과제예요.
지금은 글자들이 점수를 기준으로 그룹으로 묶여 저장되어 있어요. 일대다 매핑이죠.
이제는 각 글자마다 그 점수를 짝지어 저장하는 일대일 매핑으로 바꿔야 해요.
이 변경의 일환으로, 팀은 글자를 대문자가 아니라 소문자로 바꾸기로도 했어요.
데이터가 이전에 어떻게 구성되어 있었고 어떻게 바뀌어야 하는지 살펴보고 싶다면, 테스트 스위트의 예시를 한번 봐요.
Exercism에 가입하고 Ruby 트랙을 개념 21개연습 문제 121개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.