알고리즘9 [Java] 백준 1026번 보물 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거� www.acmicpc.net 풀이 (나의생각) B배열의 가장 큰 값 * A배열의 가장 작은 값 + .. + B배열의 가장 작은 값 * A배열의 가장 큰 값 ∴ 배열 A와 배열 B의 각 값의 곱을 더한 수의 최소값 = A의 가장 큰 값 * B의 가장 작은 값 1. 일단 A의 배열을 내림차순으로 정렬 2. 재배열하지 말라는 조건이 있기때문에 B배열에서 가장 큰 값을 구하고 정렬된 A배열의 가장 작은 값과 곱하는 과정 반.. 2020. 5. 20. [Java] 백준 1890번 점프 https://www.acmicpc.net/problem/1890 1890번: 점프 문제 N×N 게임판에 수가 적혀져 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거�� www.acmicpc.net 풀이 (나의 생각) 1. 칸의 개수 입력받기 2. for 문으로 배열의 값 입력받기 3. 시작점은 배열의 첫번째 값으로 잡아두고 시작 4. 오른쪽, 아래의 경우를 비교할 필요없이 모두 따져야함(모든 경우의 수를 구해야되기 때문) 5. 경우의 수의 경우 int 값으로 저장해서 총 개수를 구한다? 5번의 경우 int값으로 모든 경우의 수를 저장할 필요없이 dp배열에 값을 저장해 마지막 값을 출력하면된.. 2020. 5. 19. [Java] 백준 3036번 링 https://www.acmicpc.net/problem/3036 3036번: 링 문제 상근이는 창고에서 링 N개를 발견했다. 상근이는 각각의 링이 앞에 있는 링과 뒤에 있는 링과 접하도록 바닥에 내려놓았다. 상근이는 첫 번째 링을 돌리기 시작했고, 나머지 링도 같이 돌� www.acmicpc.net N개의 링이 주어지고 첫번째 링이 한 바퀴 돌때 나머지 링이 몇바퀴 도는지 구하는 문제 풀이 입력된 n개의 수를 첫번째 수와 나머지 수를 나누어 생긴 값을 분수로 출력한다. 즉, 각 링들의 최대 공약수를 구해 나누어 기약분수의 형태로 만들어 준다. ex) 위의 경우, 12와 3의 최대 공약수 ="12/3" + "/" + "3/3" = 4/1 12와 8의 최대 공약수 = "12/4" + "/" + "8/4" .. 2020. 5. 17. [Java] 백준 14501번 퇴사 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 앞으로 남은 근무일과 상담일정이 주어졌을 때 상담을 적절히 할 경우 얻을 수 있는 최대 수익을 구하는 문제 풀이 1일에는 3일 동안 상담 가능 -> 1,2,3일 소모 1일 상담 할 경우 최대한 많은 금액을 받기 위해 1일 금액 + 4일부터 받을 수 있는 최대의 금액 ∴ P[1] + dp[4] But, 2일에 상담할 경우가 최대 금액일 수 있다 즉, dp[1] = Math.max(P[1]+dp[4], dp[2]) = dp[i] = Math.max(P[i]+dp[i+T[i]], dp[i+1]) 만약 상담일이 퇴사일을 초과할 시 dp[i+.. 2020. 5. 17. 이전 1 2 3 다음