1041번 - 주사위
안녕하세요!
코드 보기 번거로우시겠지만 봐주시면 정말 감사드리겠습니다 :-)
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시간 째 고치고 있는데 도저히 이유를 모르겠습니다.
미리 감사드리고 좋은 하루 보내시길 바라겠습니다!!
댓글을 작성하려면 로그인해야 합니다.
huds093 6년 전 1
안녕하세요!
코드 보기 번거로우시겠지만 봐주시면 정말 감사드리겠습니다 :-)
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시간 째 고치고 있는데 도저히 이유를 모르겠습니다.
미리 감사드리고 좋은 하루 보내시길 바라겠습니다!!