알고리즘 분류: 그리디 알고리즘(Greedy) | 다이나믹 프로그래밍

 

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

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

 

내 풀이😊

# N 입력
n = int(input())

# DP 테이블 0으로 초기화
dp = [0] * (n + 1)
dp[3] = 1
if n >= 5:
  dp[5] = 1
  for i in range(6, n + 1):
    # i-5킬로그램을 만들 수 있을 경우
    if dp[i - 5] != 0:
      dp[i] = dp[i - 5] + 1
    # i-3킬로그램을 만들 수 있을 경우
    elif dp[i - 3] != 0:
      dp[i] = dp[i - 3] + 1

if dp[n] == 0:
  print(-1)
else:
  print(dp[n])

시간복잡도는 O(N)입니다. 

 

 

 

백준 문제 풀이 깃허브 주소입니다 :)

https://github.com/Yiseull/baekjoon

 

GitHub - Yiseull/baekjoon

Contribute to Yiseull/baekjoon development by creating an account on GitHub.

github.com

 

'알고리즘' 카테고리의 다른 글

[백준] 1753번: 최단경로 | 파이썬  (0) 2022.03.18
[백준] 1463번: 1로 만들기 | 파이썬  (0) 2022.03.18
[백준] 1260번: DFS와 BFS | 파이썬  (0) 2022.03.13
[이코테] 구현  (0) 2022.02.26
[이코테] 그리디(Greedy)  (0) 2022.02.26

+ Recent posts