• (백준 알고리즘 문제풀이) 11052번 카드 구매하기

    문제 문제 링크 어떻게 접근할 것인가 순차적으로 해당 카드 개수를 사기 위해 필요한 맥스값을 찾아주고 그 값을 이용해서 계속해서 업데이트해간다. 코드 #include <cstdio> int n, p[10001]; int main(){ scanf("%d", &n); for(int i = 1; i < n + 1; i++) scanf("%d", &p[i]); for(int i = 2; i < n +...


  • (백준 알고리즘 문제풀이) 10844번 쉬운 계단 수

    문제 문제 링크 어떻게 접근할 것인가 이 문제은 디피로 접근할 수 있는 문제이다. 각 자리에 들어올 수 있는 0 ~ 9까지의 숫자의 개수를 저장해놓는다. 0은 다음자리로 1 밖에 못보내고 9는 다음자리로 8밖에 못보낸다는 사실을 이용하면 깔끔하게 풀리는 문제이다. 코드 #include <cstdio> long long n, num[101][10]; int main(){ for(int i =...


  • (백준 알고리즘 문제풀이) 1010번 다리 놓기

    문제 문제 링크 어떻게 접근할 것인가 이 문제 쫌 까다로웠다. 서쪽에 있는 위치에서 놓을 수 있는 각 지점의 개수를 하나씩 차곡차곡 저장해서 갯수를 센다. 만일 서쪽 첫 위치에서 갈 수 있는 경우의 수가 3이면 3을 저장하고 다음 위치에 1부터 3까지 위치의 개수를 추가한다. 코드 #include <cstdio> #include <vector> using namespace...


  • (백준 알고리즘 문제풀이) 9095번 1, 2, 3 더하기

    문제 문제 링크 어떻게 접근할 것인가 일단 1, 2, 3의 값을 넣어주고 각 숫자의 경우의 수를 DP를 이용해서 저장하면서 풀어간다. 예를 들어, 5라고 하면 4 + 1, 3 + 2, 2 + 3, 1 + 4 네 경우가 가능하다 하지만 4를 더하는 것을 불가능하기 때문에 4, 3, 2를 만드는 경우의...


  • (백준 알고리즘 문제풀이) 2579번 계단 오르기(이해 쉬운 DP)

    문제 문제 링크 어떻게 접근할 것인가 이 문제를 어떻게 디피로 접근 할 수 있을까? 연속 3칸은 불가능하다는 특징 때문에 그냥 막 값을 업데이트하면 원하는 결과를 얻을 수 없다. 모든 갈래를 저장하지 않을 수 있는 방법이 뭐가 있을까? 각 위치에서 한칸 이전에서 온 맥스와 두칸 이전에서 온 맥스를 저장한다면 중간에 정보가...