Java1 토너먼트 방식으로 2번째로 작은 수 찾기 문제 임의의 숫자들을 토너먼트 방식으로 비교하여 제일 작은 수를 가려냈을 때, 여기서 2번째로 작은 수를 찾는다. 설명 처음에는 모든 수를 작은 순으로 정렬한 것과 헷갈렸는데, 토너먼트는 정렬과 완전히 다르다. 한 라운드에서 묶여서 비교되는 2개의 수 중 작은 수가 다음 라운드로 올라가는 방식이기 때문에 비교 쌍들끼리는 서로 연관성이 없다. 비교되기 위해 묶이는 두 개의 수만이 부분적으로 정렬되는 것이다. 따라서 모든 수를 고려할 필요없이 2번째로 작은 수와 비교된 수들만을 고려하면 된다. 2번째로 작은 수는 반드시 최솟값과 비교됐을 것이며, 따라서 최솟값과 비교된 수들 중 최솟값이 찾는 답이 된다. 따라서 이 후보들을 배열에 저장하여 이 배열 속 최솟값을 찾으면 된다. 코드 class second{ i.. 2020. 1. 8. 이전 1 다음