heheh
히히
heheh
전체 방문자
오늘
어제
  • 히히 (75)
    • AI (14)
      • Model (Study) (3)
      • Model (Paper) (7)
      • Tip! (4)
    • Backend (3)
      • ASP.NET (1)
      • Spring (2)
      • program (0)
      • JAVA (0)
    • Program (11)
      • Docker (3)
      • Github (5)
      • AWS (3)
    • OS (1)
      • Window (1)
      • Linux (0)
    • Python (14)
      • Python Lib (11)
      • Pytorch (1)
      • Tensorflow (1)
      • 크롤링 (1)
    • Spark (3)
      • Scala (2)
      • Pyspark (0)
      • SQL (1)
    • IOS (Swift) (0)
      • 기본 개념 (0)
    • 프로젝트 (3)
      • [AI] GAN (0)
      • [IOS] Swift (3)
      • [AI] 추천시스템 (0)
    • 분석 (1)
    • 알고리즘 풀이 (22)
      • 백준 (22)
    • 기타 (3)
      • 장비세팅 (3)
      • 소개 (0)

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
heheh

히히

알고리즘 풀이/백준

백준 9095번 : 1, 2, 3 더하기

2021. 2. 1. 15:03

문제 : www.acmicpc.net/problem/9095

 

9095번: 1, 2, 3 더하기

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

www.acmicpc.net

 

풀이

쉬운 문제니 보자마자 다이나믹을 떠올려야 한다.

n이라는 숫자가 있으면 n을 1, 2, 3 의 합으로 만들수 있는 경우의 수는

n-1을 1,2,3의 합으로 만드는 경우 + n-2를 1,2,3의 합으로 만드는 경우 + n-3을 1,2,3의 합으로 만드는 경우이다.

각 마이너스된 숫자에 1, 2, 3을 더하면 n이 되기 때문이다.

num에 입력을 받고 sum123에 num최대값까지 경우의 수를 입력한 다음 해당하는 부분을 출력한다.

 

n = int(input())
num = []
sum123 = []
for i in range(n):
    num.append(int(input()))

sum123=[0 for _ in range(max(num)+1)]
sum123[1] = 1
sum123[2] = 2
sum123[3] = 4

if max(num) > 4:
    for i in range(4, len(sum123)):
        sum123[i] = sum123[i-1] + sum123[i-2] + sum123[i-3]

for i in num:
    print(sum123[i])

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

백준 11399번 : ATM  (0) 2021.02.01
백준 2579번 : 계단 오르기  (0) 2021.02.01
백준 7576번 : 토마토 (Python)  (0) 2021.01.21
백준 12865번 : 평범한 배낭 (Python)  (0) 2021.01.16
백준 2606번 : 바이러스 (Python)  (0) 2021.01.15
    heheh
    heheh

    티스토리툴바