ETL

ETL

보통

소개

Lexiconia라는 온라인 멀티플레이어 게임을 만드는 회사에서 일하고 있어요.

게임을 하려면 각 플레이어는 13개의 글자를 받고, 그 글자들을 재배열해서 단어를 만들어야 해요. 글자마다 점수가 다른데, 어떤 글자는 다른 글자보다 단어를 만들기가 더 쉽거든요.

게임은 처음에 영어로 출시했는데 인기가 아주 많아요. 그래서 이제 회사는 다른 언어로도 확장하려고 해요.

언어마다 글자의 점수를 다르게 지원해야 해요. 점수는 그 언어에서 각 글자가 다른 글자에 비해 얼마나 자주 쓰이는지로 정해져요.

예를 들어 'C'는 영어에서 꽤 흔한 글자라서 3점밖에 안 돼요. 그런데 노르웨이어에서는 아주 드문 글자라서 10점이에요.

새로운 언어를 더 쉽게 추가하려면, 팀에서 게임에 글자와 점수를 저장하는 방식을 바꿔야 해요.

지침

게임에서 글자와 각 글자의 점수를 담은 데이터 형식을 바꾸는 것이 과제예요.

지금은 글자들이 점수를 기준으로 그룹으로 묶여 저장되어 있어요. 일대다 매핑이죠.

  • 1점: "A", "E", "I", "O", "U", "L", "N", "R", "S", "T",
  • 2점: "D", "G",
  • 3점: "B", "C", "M", "P",
  • 4점: "F", "H", "V", "W", "Y",
  • 5점: "K",
  • 8점: "J", "X",
  • 10점: "Q", "Z",

이제는 각 글자마다 그 점수를 짝지어 저장하는 일대일 매핑으로 바꿔야 해요.

  • "a"는 1점이에요.
  • "b"는 3점이에요.
  • "c"는 3점이에요.
  • "d"는 2점이에요.
  • 등등.

이 변경의 일환으로, 팀은 글자를 대문자가 아니라 소문자로 바꾸기로도 했어요.

Note

데이터가 이전에 어떻게 구성되어 있었고 어떻게 바뀌어야 하는지 살펴보고 싶다면, 테스트 스위트의 예시를 한번 봐요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Ruby Exercism

ETL 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Ruby 트랙을 개념 21개연습 문제 121개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.