알고리즘 - Python / 백준 - 1041번 : 주사위
1041번: 주사위 (acmicpc.net) 1041번: 주사위 첫째 줄에 N이 주어진다. 둘째 줄에 주사위에 쓰여 있는 수가 주어진다. 위의 그림에서 A, B, C, D, E, F에 쓰여 있는 수가 차례대로 주어진다. N은 1,000,000보다 작거나 같은 자연수이고, 쓰여 있는 수 www.acmicpc.net 풀이 주사위를 쌓아 보이는 면의 숫자합이 가장 작도록 쌓고 그 합을 구하는 문제이다. 주사위를 놓을 때 한 면만 보이는 경우 , 두면이 보이는 경우 , 세면이 보이는 경우로 나뉜다. 한 면의 경우는 주사위 6개의 면중 가장 작은 수 , 두면의 경우는 그리디 알고리즘을 통해 가장 숫자가 작은 면과 붙어있는 4개의 면중 그다음으로 작은 면을 고르면 된다. 세면의 경우도 그리디 알고리즘으로 구현하려 ..
더보기
알고리즘 - Python / 백준 - 1074번 : Z
1074번: Z (acmicpc.net) 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 풀이 2^N * 2^N 쿠기의 배열을 Z모양으로 탐색한다. 한번에 정사각형 모양으로 탐색하므로 쪼갤 수 있는 가장 작은 단위까지 쪼개면서 세면된다. 4등분을 한 후 , 등분에 따라 0 , SIZE * 1/4 , SIZE * 2/4 , SIZE * 3/4 의 인덱스로 쪼개고 각각을 더해가면서 몇번째로 탐색하는지 알아낼 수 있다. 문제의 예제인 2 3 1 의 경우 , 처음 쪼갤때는 SIZE * 2/4 인 조각에 속하..
더보기