Replies: 1 comment
-
|
ㄷㄷ 구현 완전 깔끔한데?? 굳굳 잘했네~ |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
문제
https://www.acmicpc.net/problem/14889
아이디어
모든 N은 짝수이고 N/2명씩 팀을 짜니까
N개의 자연수에서 중복을 허용하지 않고 N/2개를 순서와 상관없이 나열하는 조합 문제이다.
팀 능력치를 stats[][]을 이용해 저장해두고 팀이 될 수 있는 모든 경우의 조합을 구해서 스타트팀 능력치를 계산하고 팀에 속하지 않은 팀(링크팀) 능력치도 계산해서 차이를 구한 후 min값을 갱신한다.
팀 능력치를 구할 때에는 각 팀별로 이중for으로 전부 stats[][]을 이용해 더해주었다. 겨우 생각해낸 방법이지만 짜고나니 분명 이것보단 나은 방법이 있을 것 같다..
시간복잡도
N의 최댓값은 20이고 조합의 시간복잡도는 O(2N)라서 220이다.
팀 능력치를 계산할 때에도 이중 for문으로 전부 더해주면 되는거라 O(N2)라서 202이다.
따라서 2초 안에 풀이가 가능하다.
맞기는 맞았는데 뭔가 더럽다.. 좀 더 최적화할 수 있는 방법이 있을 거 같은데 일단 넘어가..
Beta Was this translation helpful? Give feedback.
All reactions