BAEKJOON_14889) 스타트와 링크

14889) 스타트와 링크 (19.10.07)








* 입력받은 사람 수 n명을 반으로 나눠야 하니까 0과 1로 순열을 만들었다.
* nextarr()로 다음 순열을 구하고, alist와 blist에 각각 팀원을 저장.
* ij와 ji의 경우를 모두 더해야 하기 때문에 이중for문을 사용해서 다 더해줌.
* sum()에서 한 순열에서 각 팀의 점수 차이를 반환해주고,
* main()에서 모든 순열에서의 차이 중에서 최소값을 출력.

* 처음에 ij와 ji를 모두 더해야하니까 생각했던게
* 각 팀원의 수인 n/2에서 2개를 0으로 하고 나머지를 1로 해서 다음순열을 돌리는 것.
* 그렇게 해서 코드가 통과되긴 했는데 시간, 메모리가 어마어마해서 고쳤다.

* 아래 코드가 처음 코드의 결과와 코드의 sum(), 다른곳은 동일하다.

댓글

이 블로그의 인기 게시물