Algorithm/Greedy

BOJ#1041 주사위

밤이2209 2016. 11. 13. 17:30

BOJ#1041 주사위


* 문제

https://www.acmicpc.net/problem/1041


* 풀이



- if (N == 1) 인 경우


 : A~F 중 가장 큰 숫자가 써진 면이 바닥을 향해야한다.



- if (N > 1) 인 경우


 : N^3개의 주사위로 N*N*N 크기의 정육면체를 만들 때,

정육면체를 구성하는 주사위는 3가지 경우로 구분할 수 있다.


 1) 1면만 노출되는 주사위

 2) 2면이 노출되는 주사위

 3) 3면이 노출되는 주사위


위 3가지 경우의 각각의 최소값을 구한다.


그리고, N = 1, 2, 3, 4...인 경우를 직접 손으로 그려 규칙을 찾은 후 위의 값들을 대입하여 푼다.




,,,주사위 문제의 경우, 주사위 면이 6개라는 것은 변하지 않는 사실이므로

경우의 수 모두를 하드코딩? 하는 것도 문제 풀이 시간을 줄이는 좋은 선택이 될 것 같다...


* Test Case

4

1 2 3 4 5 6


답 : 112



1000000

50 49 48 47 46 45


답 : 225000008000000



1000000

50 50 50 50 50 50


답 : 250000000000000



1

20 39 28 17 2 8


답 : 75



2

50 50 49 38 20 1


답 : 320



5555

22 2 24 23 21 20


답 : 309380110


1

22 2 24 23 21 20


답 : 88


2

22 2 24 23 21 20


답 : 268




* 나의 코드

https://github.com/stack07142/BOJ/tree/master/BOJ%231041_Dice

'Algorithm > Greedy' 카테고리의 다른 글

BOJ#6195 Fence Repair  (0) 2017.02.02
BOJ#7676 Saruman's Army  (0) 2017.02.02
POJ#3617 Best Cow Line  (0) 2017.02.01
BOJ#1700 멀티탭 스케쥴링  (0) 2017.02.01
BOJ#3109 빵집 (PLINOVOD)  (0) 2016.12.30