dev_beomgeun
꾸준하게 차근차근
dev_beomgeun
전체 방문자
오늘
어제
  • 분류 전체보기 (170)
    • 전공 (0)
      • 운영체제 (0)
      • 알고리즘 (0)
      • 자료구조 (0)
      • 데이터베이스 (0)
      • 네트워크 (0)
    • 개발 공부 (32)
      • 웹 (6)
      • 리눅스 (4)
      • 머신러닝 (1)
      • 스프링 (17)
      • Git (2)
      • AWS (2)
    • 개발 도서, 강의 (3)
      • 스프링 입문을 위한 자바 객체지향의 원리와 이해 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식(김영한.. (2)
      • 스프링 부트와 AWS로 혼자 구현하는 웹서비스 (1)
    • 문제 풀이 (118)
      • 백준 알고리즘 (72)
      • 프로그래머스 알고리즘, SQL (38)
      • Hackerrank SQL (8)
    • 프로젝트 기록 (4)
      • 캡스톤 종합설계 (4)
      • 반려하루 프로젝트 (0)
    • 활동 기록 (12)
      • 네이버 부스트캠프 (7)
      • 취준 & 코테 (4)
      • 소프트웨어 마에스트로 13기 (1)
    • 이것저것 (1)

블로그 메뉴

  • 홈
  • 깃허브
  • 링크드인
  • 방명록

공지사항

인기 글

태그

  • 프로그래머스
  • c++
  • 스프링
  • dp
  • BFS
  • 네이버 부스트캠프
  • 일기
  • 그래프탐색
  • 프로그래머스 SQL
  • 백준 DP
  • HackerRank mysql
  • 반성
  • Baekjoon
  • Hackerrank
  • AI Tech
  • 백준
  • 회고
  • 서블릿
  • 기록
  • 부스트캠프

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dev_beomgeun

꾸준하게 차근차근

문제 풀이/백준 알고리즘

[baekjoon 9095] 1, 2, 3 더하기 - DP(동적 프로그래밍) (C++)

2021. 1. 11. 19:15
728x90

www.acmicpc.net/problem/9095

 

9095번: 1, 2, 3 더하기

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.

www.acmicpc.net

#include <iostream>
using namespace std;

int arr[12] = {0, 1, 2, 4, };
int T,n;

int dp(int n) {
	if (n <= 3) {
		return arr[n];
	}
	else{
		if (arr[n]) {
			return arr[n];
		}
		else {
			return arr[n] = dp(n - 1) + dp(n - 2) + dp(n - 3);
		}
	}
}

int main() {
	cin >> T;
	for (int i = 0; i < T; i++) {
		cin >> n;
		cout << dp(n) << "\n";;
	}
}

점화식은 N = N-1 + N-2 + N-3으로 

 

만약 N = 14 이면

(1) 13을 만드는 경우의 수들의 조합에 각 + 1 (13+1 = 14)

(2) 12를 만드는 경우의 수들의 조합에 각 + 2 (12+2 = 14)

(3) 11을 만드는 경우의 수들의 조합에 각 + 3 (11+3 = 14) 을 더해주는 경우와 같다.

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'문제 풀이 > 백준 알고리즘' 카테고리의 다른 글

[baekjoon 2579] 계단 오르기 - DP(동적 프로그래밍) (C++)  (0) 2021.01.16
[baekjoon 1916] 최소비용 구하기 - 그래프, 다익스트라 (C++)  (0) 2021.01.14
[baekjoon 18870] 좌표 압축 - 정렬, 값 압축 (C++)  (0) 2021.01.08
[baekjoon 11726] 2xN 타일링- DP(동적 프로그래밍) (C++)  (0) 2021.01.03
[baekjoon 7662] 이중 우선순위 큐 - Map, MutliMap (C++)  (0) 2021.01.02
    '문제 풀이/백준 알고리즘' 카테고리의 다른 글
    • [baekjoon 2579] 계단 오르기 - DP(동적 프로그래밍) (C++)
    • [baekjoon 1916] 최소비용 구하기 - 그래프, 다익스트라 (C++)
    • [baekjoon 18870] 좌표 압축 - 정렬, 값 압축 (C++)
    • [baekjoon 11726] 2xN 타일링- DP(동적 프로그래밍) (C++)
    dev_beomgeun
    dev_beomgeun
    백엔드 개발을 하며 얻은 지식과 경험을 공유합니다. 현재 카카오페이에서 백엔드 엔지니어로 일하고 있습니다.

    티스토리툴바