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 |