#23971 ZOAC 4
문제 코드fun main() { val (h, w, n, m) = readln().split(' ').map { it.toLong() } val height = (h + n) / (n + 1) val width = (w + m) / (m + 1) println(width * height)} 풀이표를 그려서 자리를 채워보다가 대략적인 방향을 잡았다.문제에서는 가로 m칸 또는 세로 n칸 이라고 적혀있어서 이것이 문제의 요점인가 싶었다.근데 결국 가로 m칸 그리고 세로 n칸 으로 계산하는 것이 최대 수용 인원 수를 구하는 방법이다. 이런 식으로 대각선에 인원을 배치할 수 없기 때문이다 만약 h, w, n, m = 3, 3, 1, 1 라고 가정했을 때, (2, 3)에 인원을 배치시..
2024. 7. 22.
# Driving License
# 문제 # 입력 및 출력 # 풀이 어처피 회전 횟수를 제외하면 세로 M-1, 가로 N-1칸씩 이동하는 것은 정해져 있다. 따라서 L * {(M-1) + (N-1)}은 고정이고 여기에 회전 횟수만 최소로 해서 더해주면 결과 값을 구할 수 있다. 문제는 연료이다. 주어진 연료 G 이하로 사용하면서 회전 횟수를 최소로 만들어야 한다. 처음엔 pair을 사용해서 하려다가 너무 복잡해지기도 하고 접근이 힘들어져서 4차원 배열을 선택했다. dp[x][y][k][l] => (x, y) 좌표에서 회전수가 k번이고, 방향은 l일 때의 최소 연료 합 일단 (x,y) 좌표에서 회전수는 max(x, y) * 2를 절대 넘지 않는다. 예) (2,2) 에서는 최대 3번, (2,4) 에서는 최대 4번, (3,3) 에서는 최대 5..
2022. 11. 14.