728x90
https://www.acmicpc.net/problem/1041
1041번: 주사위
첫째 줄에 N이 주어진다. 둘째 줄에 주사위에 쓰여 있는 수가 주어진다. 위의 그림에서 A, B, C, D, E, F에 쓰여 있는 수가 차례대로 주어진다. N은 1,000,000보다 작거나 같은 자연수이고, 쓰여 있는 수
www.acmicpc.net
2x2x2 주사위와
3x3x3 주사위, 4x4x4 주사위를 그리면서 직접 세보면 패턴을 찾을 수 있다.
정육면체 주사위는 N==1 이 아닌 이상, 최소 1면 ~ 최대 3면까지만 볼 수 있다.
import sys
#sys.setrecursionlimit(10**6)
input = sys.stdin.readline
if __name__ == "__main__":
N = int(input())
ans = 0
dice = list(map(int,input().split()))
if N == 1:
print(sum(dice)-max(dice))
else: # N >= 2
# 제일 작은 수 3개 고르는데, 주사위의 특성 고려
cube = [min(dice[0], dice[5]),
min(dice[1], dice[4]),
min(dice[2], dice[3])]
cube.sort()
# 한 면만 보이는 주사위
ans += ((N-1) * 4 * (N-2) + (N-2)**2) * cube[0]
# 두 면이 보이는 주사위
ans += ((N-1) * 4 + (N**2-4-(N-2)**2)) * (cube[0] + cube[1])
# 세 면이 보이는 주사위
ans += 4 * sum(cube)
print(ans)
728x90
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/파이썬] 13549번 숨바꼭질 3 (0) | 2023.07.08 |
---|---|
[백준/파이썬] 12919번 A와 B 2 (0) | 2023.05.27 |
[백준/파이썬] 1111번 IQ Test (0) | 2023.05.26 |
[백준/파이썬] 17144번 미세먼지 안녕! (0) | 2023.05.04 |
[백준/파이썬] 2877번 4와 7 (0) | 2023.04.26 |