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