유엔 회의의 두 대사는 서로 대화하기를 원하지만 불행히도 각 언어는 하나의 언어 만 사용하며 같은 언어가 아닙니다. 다행스럽게도, 그들은 몇몇 언어를 이해하고 사용하는 여러 번역가에게 접근 할 수 있습니다. 당신의 임무는 두 명의 대사가 서로 대화 할 수있는 가장 짧은 번역사를 결정하는 것입니다.
코딩
입력 : 2 글자 소문자 문자열 (각 대사의 언어)로서 2 개의 언어 및 언어 목록 (사용 가능한 번역기 당 1 개의 목록)
2 문자 코드 대신 정수를 사용할 수도 있습니다.
출력 : 두 명의 대사가 통신 할 수 있도록하는 가장 짧은 번역사 체인 중 하나 인 색인 또는 값을 기준으로 한 일련의 번역사. 유효한 번역사 체인이 없으면 동작이 정의되지 않습니다. (충돌, 임의의 값을 출력하거나 오류를 표시 할 수 있음)
유효한 번역사 체인은 첫 번째 번역사가 한 명의 대사 언어를 말하고, 두 번째 및 그 이후의 번역자는 이전 번역자와 적어도 하나의 언어를 공유하고 마지막 번역기는 다른 대사의 언어를 말하는 것입니다.
예
제로 기반 인덱싱 사용 :
es, en, [
[es, en]
] ==> [0]
en, en, [] ==> []
en, jp, [
[en, zh, ko, de],
[jp, ko]
] ==> [0, 1]
es, ru, [
[gu, en, py],
[po, py, ru],
[po, es]
] ==> [2, 1]
fr, gu, [
[it, fr, de, es, po, jp],
[en, ru, zh, ko],
[jp, th, en],
[th, gu]
] ==> [0, 2, 3]
fr, ru, [
[fr, en],
[en, ko, jp],
[en, ru]
] ==> [0, 2]
de, jp, [
[en, fr],
[ko, jp, zh],
[fr, po],
[es, ko, zh],
[de, en, th],
[en, es],
[de, fr]
] ==> [4, 5, 3, 1]
규칙과 가정
- 표준 IO 규칙 (모든 편리한 I / O 형식 사용) 및 금지 된 허점이 적용됩니다.
- 언어를 말하고 이해하는 것이 완벽하게 대칭이며 언어 간 가능한 모든 번역이 똑같이 효율적이라고 가정 할 수 있습니다.
- "충분히 가까운"언어라는 개념은 없습니다. 예를 들어 스페인어가 필요한 한쪽 끝에 포르투갈어를 사용하는 것만으로는 충분하지 않습니다.
- 가장 짧은 변환기 체인이 여러 개 있으면 그 중 하나가 수행됩니다.
- 대사가 같은 언어를 사용하는 경우 번역자 목록이 비어 있어야합니다
- 어느 대사가 첫 번째 대사인지는 중요하지 않습니다. 번역기 목록은 정방향 또는 역방향 일 수 있습니다.
- 대사는이 도전을 위해 하나의 언어 만 사용합니다
- 번역가는 두 가지 이상의 언어를 구사합니다
- 2 글자 언어 코드는 실제 언어와 일치하지 않아도됩니다.
- 유효한 번역가 순서가 있다고 가정 할 수 있습니다.
- 값으로 시퀀스를 출력하는 경우 관련 언어뿐만 아니라 사용 가능한 모든 언어 세트를 포함하십시오.
행복한 골프!
en,fr,sp;en,gr;gr,fr