반응형
인터뷰 문제
25마리의 말 중 상위 3마리를 찾기 위해 필요한 최소한의 경기 수는 몇 개인지 알려주세요. 한 번의 경기에는 5마리의 말을 출전시킬 수 있으며, 타이머는 없습니다.
해결 방법
25마리의 말 중 상위 3마리를 찾기 위해 필요한 최소한의 경기 수를 구하기 위해 다음과 같은 절차를 따릅니다:
- 25마리의 말을 5개 그룹으로 나눕니다. 각 그룹은 5마리의 말로 구성됩니다.
- 각 그룹의 말들을 서로 경주시킵니다. A, B, C, D, E라는 이름의 다섯 경기를 진행합니다.
이제 다섯 경기의 결과가 있고, 전체적으로 상위 3마리를 결정해야 합니다. 다음과 같은 방법으로 진행합니다:
- 각 경기에서 1등으로 도착한 말들 (A, B, C, D, E 경기에서 1등으로 도착한 말들)을 뽑아 새로운 경기에 출전시킵니다. 이를 F 경기라고 합니다.
- F 경기의 우승자를 결정합니다. 이 말은 전체적으로 가장 빠른 말입니다.
이제 가장 빠른 말을 알게 되었습니다. 그러나 두 번째와 세 번째로 빠른 말을 결정해야 합니다. 다음 단계를 따릅니다:
- F 경기에 출전하지 않은 나머지 말들 (A, B, C, D, E 경기에서 2등으로 도착한 말들)을 확인하고, 이들의 F 경기에서의 개별 경주 시간을 비교하여 전체적으로 2등으로 도착한 말을 결정합니다.
- 이제 F 경기에 출전하지 않은 말들 (A, B, C, D, E 경기에서 3, 4, 5등으로 도착한 말들) 중에서 전체적으로 2등으로 도착한 말을 선택하고, 이 말들과 경주시킵니다.
- 이 경기 (G 경기라고 합니다)에서 2등으로 도착한 말을 결정합니다. 이 말은 전체적으로 두 번째로 빠른 말입니다.
- 마지막으로, G 경기에서 3등으로 도착한 말과 F, G 경기에서 3등으로 도착한 말들을 선택하여 최종 경기를 진행합니다.
- 이 최종 경기에서 우승한 말은 전체적으로 세 번째로 빠른 말입니다.
총 7경기 (A, B, C, D, E, F, G 경기)를 진행하여 25마리의 말 중 상위 3마리를 찾을 수 있습니다.
반응형
'old > Algorithm Solving' 카테고리의 다른 글
LeetCode 328. Odd Even Linked List 자바 문제 풀이 (0) | 2023.07.26 |
---|---|
LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal 자바 문제 풀이 (0) | 2023.07.25 |
LeetCode 17. Letter Combinations of a Phone Number 자바 문제 풀이 (0) | 2023.07.23 |
LeetCode 2469. Convert the Temperature 자바 문제 풀이 (0) | 2023.07.22 |
LeetCode 1470. Shuffle the Array 자바 문제 풀이 (0) | 2023.07.21 |