-
[알고리즘] 백준 주사위 - 1041알고리즘 2022. 11. 15. 11:10728x90
1. 문제
2. 접근
1. n =2, 3, 4 .. 이렇게 그리다보면 우리는 낮은 숫자 3개만을 사용한다는 사실을 알 수 있다
2. n == 1 일때는 그 주사위에서 가장 큰 값을 제외하고 나머지 값들의 합을 구하면 된다
3. n >=2 일때는 가장 낮은 값은 몇개가 나올지, 2번째 낮은값을 몇개가 나올지 , 3번째로 작은 값을 몇개가 나올지 를 구하면 된다
4. 3번째로 낮은 값은 항상 모서리 의 맨 위의 값만 가능하므로 4개고, 나머지 2개는 주석처리 해봤다
-> 그림을 그려서 주석을 이해해보는것을 추천해본다!
3. 풀이
import sys input = sys.stdin.readline # 주사위 갯수 n^3 n = int(input()) data = list(map(int, input().split())) if n == 1: print(sum(data)-max(data)) else: res = [min(data[0], data[5]), min(data[1], data[4]), min(data[2], data[3])] res.sort() first = (5*(n**2) - 8*n + 4) * res[0] # 4(n-2)(n-1) + 4n + 4(n-2) + (n-2)**2 second = (8*n - 8) * res[1] # 8n - 8 third = 4 * res[2] print(first+second+third)
'알고리즘' 카테고리의 다른 글
[알고리즘] 백준 - 1132 - 합 (0) 2022.11.29 [알고리즘] 프로그래머스 - 정수 삼각형 (0) 2022.11.22 [알고리즘] 백준 1966 - 프린터 큐 (0) 2022.11.09 [알고리즘] 백준 선긋기 - 2170 (0) 2022.11.04 [알고리즘] 백준 1300 - K번째 수 (0) 2022.11.04