티스토리 뷰

프로그래밍/문제풀이

[BOJ] 9465 스티커

Jaerae Kim 2020. 2. 21. 11:42
#include <stdio.h>

int stickers[2][100000];
int memo[3][100000];
int n;

int max(int a, int b)
{
    return a > b ? a : b;
}

int maxsum(int col, int before)
{
    int ret = 0;
    if (col == n)
        return 0;
    if (memo[before][col] != -1)
        return memo[before][col];

    ret = maxsum(col + 1, 0);
    if(before != 2)
        ret = max(ret, maxsum(col + 1, 2) + stickers[1][col]);
    if(before != 1)
        ret = max(ret, maxsum(col + 1, 1) + stickers[0][col]);
    memo[before][col] = ret;

    return ret;
}

int main(void)
{
    int i, T, t;

    scanf("%d", &T);
    for (t = 0; t < T; t++) {
        scanf("%d", &n);
        for (i = 0; i < n; i++)
            scanf("%d", &stickers[0][i]);
        for (i = 0; i < n; i++) {
            scanf("%d", &stickers[1][i]);
            memo[0][i] = memo[1][i] = memo[2][i] = -1;
        }
        printf("%d\n", maxsum(0, 0));
    }
}

DP는 만나면 긴장된다. 이름 때문인 것 같다.
긴장해서인가? 실수들이 참...
메모이제이션 배열 초기화하다가 O(n^2) 나오기, 'j' 선언 후 초기화하지 않고 사용하기, scanf 변수에 '&' 안붙이기...
O(n^2)은 생각도 못해서 푸신 분 블로그에 있는 코드와 거의 같은 모양으로 만든 후에야 발견했다.
역시 긴장하면 될 것도 안돼.
적당한 긴장은 필요하다지만 점점 공감되지 않는다. 긴장하면 그냥 불안한데. 기대하는 건 도움이 되기도 한다. 난 적당히 긴장하는게 아니라 적당히 기대하는 걸로 해야겠당 와하하

'프로그래밍 > 문제풀이' 카테고리의 다른 글

[BOJ] 11057 오르막 수  (0) 2020.02.27
[BOJ] 10844 쉬운 계단 수  (0) 2020.02.27
[프로그래머스] 단어 변환  (0) 2020.02.11
[프로그래머스] 숫자 야구  (0) 2020.02.11
[BOJ] 1260 DFS와 BFS  (0) 2020.02.03
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함