본문 바로가기

old/Algorithm Solving

인터뷰 질문: 25마리 말 문제

반응형

인터뷰 문제

25마리의 말 중 상위 3마리를 찾기 위해 필요한 최소한의 경기 수는 몇 개인지 알려주세요. 한 번의 경기에는 5마리의 말을 출전시킬 수 있으며, 타이머는 없습니다.

해결 방법

25마리의 말 중 상위 3마리를 찾기 위해 필요한 최소한의 경기 수를 구하기 위해 다음과 같은 절차를 따릅니다:

  1. 25마리의 말을 5개 그룹으로 나눕니다. 각 그룹은 5마리의 말로 구성됩니다.
  2. 각 그룹의 말들을 서로 경주시킵니다. A, B, C, D, E라는 이름의 다섯 경기를 진행합니다.

이제 다섯 경기의 결과가 있고, 전체적으로 상위 3마리를 결정해야 합니다. 다음과 같은 방법으로 진행합니다:

  1. 각 경기에서 1등으로 도착한 말들 (A, B, C, D, E 경기에서 1등으로 도착한 말들)을 뽑아 새로운 경기에 출전시킵니다. 이를 F 경기라고 합니다.
  2. F 경기의 우승자를 결정합니다. 이 말은 전체적으로 가장 빠른 말입니다.

이제 가장 빠른 말을 알게 되었습니다. 그러나 두 번째와 세 번째로 빠른 말을 결정해야 합니다. 다음 단계를 따릅니다:

  1. F 경기에 출전하지 않은 나머지 말들 (A, B, C, D, E 경기에서 2등으로 도착한 말들)을 확인하고, 이들의 F 경기에서의 개별 경주 시간을 비교하여 전체적으로 2등으로 도착한 말을 결정합니다.
  2. 이제 F 경기에 출전하지 않은 말들 (A, B, C, D, E 경기에서 3, 4, 5등으로 도착한 말들) 중에서 전체적으로 2등으로 도착한 말을 선택하고, 이 말들과 경주시킵니다.
  3. 이 경기 (G 경기라고 합니다)에서 2등으로 도착한 말을 결정합니다. 이 말은 전체적으로 두 번째로 빠른 말입니다.
  4. 마지막으로, G 경기에서 3등으로 도착한 말과 F, G 경기에서 3등으로 도착한 말들을 선택하여 최종 경기를 진행합니다.
  5. 이 최종 경기에서 우승한 말은 전체적으로 세 번째로 빠른 말입니다.

총 7경기 (A, B, C, D, E, F, G 경기)를 진행하여 25마리의 말 중 상위 3마리를 찾을 수 있습니다.

반응형