[백준] 1049번 기타줄 (그리디 알고리즘)
-문제 1. 세트가격의 최솟값은 세트가격들과 (낱개가격 * 6)에서 최솟값 찾기 2. 낱개가격의 최솟값은 낱개가격들에서 최솟값 찾기 3. 세트가격으로 살 수 있을 만큼 구매하고(q개), 남은 개수(r개)는 세트가격과 (낱개가격 * r)가격 비교해서 최솟값으로 선택하기 -코드 #include using namespace std; int main() { int n, m, tmp1=0, tmp2=0, setMin = 1000, oneMin = 1000, sum =0 ; scanf("%d %d", &n, &m); for (int i = 0; i < m; i++) { scanf("%d %d", &tmp1, &tmp2); if (tmp1 < setMin) setMin = tmp1; if (tmp2 < oneMin)..
2022. 8. 15.
[백준] 1520번 내리막 길 (DFS + DP)
-문제 -코드 #include using namespace std; int n, m; int map[501][501], dp[501][501]; int dx[4] = { 1, 0, -1, 0 }; int dy[4] = { 0, 1, 0, -1 }; int DFS(int x, int y) { int xx, yy; if (x == n && y == m) return 1; if (dp[x][y] != -1) return dp[x][y]; dp[x][y] = 0; for (int i = 0; i < 4; i++) { xx = x + dx[i]; yy = y + dy[i]; if (xxn || yym) continue; if (map[xx][yy] < map[x][y]) { dp[x][y] += DFS(xx, y..
2022. 8. 8.