티스토리 뷰

알고리즘/백준

백준 2116 주사위 쌓기 C++

4567은 소수 2021. 6. 19. 23:09

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

 

2116번: 주사위 쌓기

첫줄에는 주사위의 개수가 입력된다. 그 다음 줄부터는 한 줄에 하나씩 주사위의 종류가 1번 주사위부터 주사위 번호 순서대로 입력된다. 주사위의 종류는 각 면에 적혀진 숫자가 그림1에 있는

www.acmicpc.net

시험이 오늘 끝나서 bob 면접 ppt를 만들고 간단한 문제로 하루를 마무리하였습니다.

 

n개의 주사위 입력이 주어졌을 때, 주사위를 높게 한 줄로 쌓습니다. 이 때 맞닿은 주사위의 면은 같은 수를 가집니다. 이 때 전체 주사위의 긴 한 면의 합이 최대가 되도록 구하면 됩니다.

 

주사위가 10000개 밖에 없기 때문에 6개의 면 중 옆 면에 해당하는 4개 중 최대값을 고르고 다음 주사위의 6개 숫자 중 맞닿아야하는 면을 고르고를 반복하면 됩니다. 그러면 주사위가 1개당 6개의 면 탐색, 다음 주사위의 6개의 면 탐색이므로 총 360000번 연산을 하면 됩니다. 이를 첫 번째 주사위의 6개 면에 대해 시행하므로 총 216만번 연산이므로 시간은 넉넉합니다.

 

코드는 다음과 같습니다.

 

'알고리즘 > 백준' 카테고리의 다른 글

백준 2056 작업 C++  (0) 2021.06.25
백준 1356 유진수 python3  (0) 2021.06.19
백준 1174 줄어드는 숫자 python3  (0) 2021.06.10
백준 2014 소수의 곱 C++  (0) 2021.06.06
백준 17142 연구소3 C++  (0) 2021.06.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함