huds093   6년 전

안녕하세요!

코드 보기 번거로우시겠지만 봐주시면 정말 감사드리겠습니다 :-)

calculate()에서 3개면의 최소값과 2개면의 최소값을 계산합니다.

3개면의 최소값은 8가지라고 생각해서 sum3이라는 배열(크기 8)을 만들어 8가지의 경우를 저장해주었습니다.

그리고 main에서 이를 정렬하고 제일 작은 sum3[0]을 3개면의 최소값이라고 생각해줍니다. 이를 min3에 저장했습니다.

2개면의 최소값은 2가지 값을 골라서 더해주면서 최소일 경우를 저장합니다. 이는 min2에 저장했습니다.

그리고 

min3 = min3*4;

min2 = min2*( (N-2)*4 + (N-1)*4 );

min1 = min1*( (N-2)*(N-2) + 4*(N-2)*(N-1));

이렇게 값을 갱신하고 이를 다 더한 값을 출력하도록 했습니다. 


지금 3시간 째 고치고 있는데 도저히 이유를 모르겠습니다.

미리 감사드리고 좋은 하루 보내시길 바라겠습니다!!

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