티스토리 뷰

알고리즘/BOJ

[백준] 12865 평범한 배낭

세진짱 2018. 7. 11. 01:29


정말 평범한 문제다

평범하게 아는대로 냅색을 하면 풀린다

근데 잘 푼 사람들보니까 나랑 메모리가 20배는 차이난다..!

1차dp로 풀었던데 좀 봐야겠다 ㅎㅎ


내가 푼 방식은

가방을 1~N까지 보며 max(선택 O, 선택 X) 를 보며 최대값을 찾았다


소소코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int d[111][111111];
int w[111], v[111];
int n, k;
int go(int pos, int sum) {
    if (sum < 0 ) return -987654321;
    if (sum == 0 || pos==n) return 0;
    int&ret = d[pos][sum];
    if (ret != -1return ret;
    ret = 0;
    return ret = max(go(pos + 1, sum - w[pos]) + v[pos], go(pos + 1, sum));
}
int main() {
    memset(d, -1sizeof(d));
    scanf(" %d %d"&n, &k);
    for (int i = 0; i < n; i++scanf(" %d %d"&w[i], &v[i]);
    printf("%d\n", go(0, k));
}
cs


'알고리즘 > BOJ' 카테고리의 다른 글

[백준] 10765 Bessie Gets Even  (0) 2018.07.11
[백준] 10764 Moocryption  (0) 2018.07.11
[백준] 15710 xor 게임  (4) 2018.07.09
[백준] 2405 세 수, 두 M  (1) 2018.07.09
[백준] 14268 내리 갈굼 2  (0) 2018.07.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함