park3three   3년 전

185번째 줄에서 궁수를 배치할 수 있는 모든 경우의 수를 combination으로 불러와서 반복문을 돌리는 형식으로 했는데

15x15 매트릭스로 해보니 시간이 초과되네요...

모든 경우의 수를 찾는 부분에서 가지치기를 할 수 있는 방법이 있을까요?

dmswl022329   2년 전

오래된 답변이지만...

일단 궁수가 적을 찾는데 드는 시간은 최대로 잡으면 O(D^2) 입니다. (D <= 10)

궁수가 적을 찾고 잡는데 드는 시간은 O(1) 로 계산할  수 있구요

그럼 궁수를 배치하는 방법은?

궁수 3명이 다 같으므로 3자리만 찾아서 넣어주면 됩니다(중복없이!)

제일 간단한 방법은  3중 for문으로 모든 경우를 오름차순으로 찾는겁니다

각 궁수의 좌표를 (i, j, k) 라고 하면

0 <= i < j < k < M <= 15을 만족하는 (i, j, k)의 수는 아무리 많아도 1만을 넘지 않죠

그래서 그냥 3중 for문으로 중복없이 돌리면 됩니다.

댓글을 작성하려면 로그인해야 합니다.