귀족을 위한 가장 뜨거운 신상 데이팅 앱, Noble Knots를 개발하게 됐어요! 수백 년에 걸친 왕실의 근친혼으로 상황은… 복잡해졌어요. 이런, 우리 쌍둥이였네 같은 상황을 피하려면, 두 사람이 얼마나 가까운 친척인지 확인하는 시스템을 만들어야 해요.
Noble Knots는 아이슬란드의 "Islendinga-App"에서 영감을 받았어요. 이 앱은 아이슬란드 정착 시기부터 이어져 온, 아이슬란드 사람들 사이의 모든 알려진 가족 관계를 추적하는 데이터베이스를 바탕으로 해요. 알고리즘은 왕실 가계도에서 두 사람 사이의 분리 차수를 계산할 거예요.
이 앱이 완벽한 짝에게 왕관을 씌워 줄 수 있을까요?
여러분의 과제는 가계도에서 두 사람 사이의 분리 정도를 구하는 거예요. 이것은 모든 할리우드 배우가 케빈 베이컨과 6단계 이내로 연결되어 있다는 대중문화 속 이야기와 비슷해요.
다음과 같은 가계도가 주어졌다고 해봐요:
┌──────────┐ ┌──────────┐ ┌───────────┐
│ Helena │ │ Erdős ├─────┤ Shusaku │
└───┬───┬──┘ └─────┬────┘ └────┬──────┘
┌───┘ └───────┐ └───────┬───────┘
┌─────┴────┐ ┌────┴───┐ ┌─────┴────┐
│ Isla ├─────┤ Tariq │ │ Kevin │
└────┬─────┘ └────┬───┘ └──────────┘
│ │
┌────┴────┐ ┌────┴───┐
│ Uma │ │ Morphy │
└─────────┘ └────────┘
Tariq와 Uma의 분리 정도는 2예요 (Tariq → Isla → Uma). Isla와 Kevin 사이에는 알려진 관계가 없어요. 주어진 데이터에 연결이 없기 때문이에요. Uma와 Isla의 분리 정도는 1이에요.
Isla와 Tariq는 형제이고, 분리 정도가 1이에요. 마찬가지로 이 구현은 여러분과 아버지의 형제 사이의 분리 정도를 2로 보고할 거예요.
Exercism에 가입하고 MoonScript 트랙을 연습 문제 126개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.