반응형
[BOJ  1149] RGB거리 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 3. 13:46[BOJ 1149] RGB거리 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 풀이 - 시간 제한 0.5초 이므로 완전 탐색으로 풀 경우 시간 초과 발생 - 첫번째 집의 RGB 값으로 초기값을 설정하고, 동적 프로그래밍으로 풀이한다 - 최종적으로 DP[N][1 ~ 3] 값 중 최소값 출력 - 시간복잡도 : O(N) 점화식 DP[i][j] = Math.min(DP[i - 1][x], DP[i - 1][y]) + RGB[i][j] (이때 i..

[BOJ 2156] 포도주 시식(Java, DP)
알고리즘/동적 프로그래밍2023. 6. 30. 20:43[BOJ 2156] 포도주 시식(Java, DP)

문제 링크 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규www.acmicpc.net문제 풀이 - 시간복잡도 O(N)- 초기항 구하고, N번째 포도주에 대해 아래 3가지 경우를 비교하여 최대 값 구함  이때 3번 연달아 포도주를 마실 수 없다는 규칙에 따라 DP 테이블을 갱신한다 i번째 포도주를 마시지 않는 경우① DP[i - 1]할당 i번째 포도주를 마시는 경우② i - 1 번째 포도주 먹고 마시는 경우 최대치 (DATA[i - 1] + DP[i - 3])③ i - 2 번째..

[BOJ 14888번] 연산자 끼워넣기 (Java, 완전탐색, 재귀호출)
알고리즘/완전 탐색2023. 6. 13. 12:34[BOJ 14888번] 연산자 끼워넣기 (Java, 완전탐색, 재귀호출)

문제 링크 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net 풀이 - DFS로 연산자에 대한 순열(Permutation)을 구한 후 연산 결과값 구함 - N(2 ≤ N ≤ 11) 이므로 최대 연산자 개수는 10개, 순열 10! = 3,628,800 - 시간복잡도 O(N! * N ) = O(10! * 11) = 약 3,600만번 이므로 풀이가능 제출 코드 풀이1. 연산자 순열을 구한 후 연..

반응형
image