[백준/Python] 9095번 1, 2, 3 더하기

2025. 3. 10. 14:40·알고리즘문제풀이

문제

https://www.acmicpc.net/problem/9095


문제 이해

규칙을 찾기 위해 정수 n을 1,2,3으로 나타내는 방법의 수를 구해보았다.

처음에는 숫자 하나만 사용해도 되는지 몰라서 규칙을 찾는데 오래걸렸다.

n	ans	
1	1	
2	2 	
3	4	
4	7 	
5	13	
6	24	
7	44

 

규칙은 앞 세개의답을 더하는 것이었다.

점화식을 파악했으니 이제 문제를 풀 수 있다.


문제 풀이(정답)

T = int(input())

for _ in range(T):
    n = int(input())
    dp = [0] * 11
    dp[1] = 1
    dp[2] = 2
    dp[3] = 4

    for i in range(4, n+1):
        dp[i] = dp[i-1] + dp[i-2] + dp[i-3]

    print(dp[n])

 

다이나믹 프로그래밍을 이용해서 문제를 풀어주었다.

 

IndexError를 방지하기위해 n이 1,2,3인 경우는 미리 설정해준다.

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

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

[백준/Python] 1847번 스택 수열  (0) 2025.03.12
[백준/Python] 1012번 유기농 배추  (0) 2025.03.11
[백준/Python] 2108번 통계학  (0) 2025.03.06
[백준/Python] 11729번 2×n 타일링  (0) 2025.03.05
[백준/Python] 28278번 스택 2  (0) 2025.03.04
'알고리즘문제풀이' 카테고리의 다른 글
  • [백준/Python] 1847번 스택 수열
  • [백준/Python] 1012번 유기농 배추
  • [백준/Python] 2108번 통계학
  • [백준/Python] 11729번 2×n 타일링
jungyn
jungyn
jungyn 님의 블로그 입니다.
  • jungyn
    jungyn 님의 블로그
    jungyn
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • 알고리즘문제풀이 (31)
      • 제로인턴 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    2606
    solved.ac
    counter
    2108
    사전직무교육
    BFS
    교점개수
    다이나믹프로그래밍
    수들의 합 2
    제로인턴
    카드1
    DP
    2차원행렬
    통계헉
    백준
    프로그래머스
    1629
    너비우선탐색
    스택 2
    시간초과
    스택 수열
    28278
    2161
    1847
    후기
    스택
    11729
    2563
    SYS
    18110
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
jungyn
[백준/Python] 9095번 1, 2, 3 더하기
상단으로

티스토리툴바