![[백준 / BOJ] 2839번 설탕 배달 (C++, Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fem6dWu%2FbtrJlzrl8Xl%2Fk10ely8w6dLz8e5DoKn1OK%2Fimg.png)
[백준 / BOJ] 2839번 설탕 배달 (C++, Python)◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 4. 5. 16:37
Table of Contents
반응형
링크 : https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
문제
문제 풀이
수학 문제다. 푸는 방법은 DP와 그리디, 두 가지 방법이 있다.
우선 그리디로 푸는 방법은 간단하다. 최대한 적은 봉지를 들고 가고 싶다 했으니, 5kg짜리 봉지로만 담으면 된다.
처음에 주어진 N값이 5로 나누어 떨어진다면 (N % 5 == 0) 바로 5로 나눈 값을 출력하면 되고, 그렇지 않다면 3kg 봉지로 담고 출력할 값을 늘려줌과 동시에 N에서 3을 빼는 식으로 풀었다.
DP로 푸는 방법도 코드 길이만 보면 간단하다. 우선 dp[3], [5]를 1로 초기화해준다. (기본값이기 때문에)
현재 ikg의 최소 봉지수를 구하려면, 이전에 계산한 (i - 3)kg과 (i -5)kg의 최솟값을 비교하면 될 것이다. 비교한 최솟값에 +1을 한 값을 dp[i]에 넣고, 만약 이 값이 최댓값 5000보다 크다면 -1을 출력하도록 했다.
C++ 코드 전문
Python 코드 전문
소감
반응형
'◎ 자료구조와 알고리즘 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 / BOJ] 1978번 소수 찾기 (C++, Python) (0) | 2022.04.06 |
---|---|
[백준 / BOJ] 10757번 큰 수 A + B (C++, Python) (0) | 2022.04.05 |
[백준 / BOJ] 10250번 ACM 호텔 (C++, Python) (0) | 2022.02.03 |
[백준 / BOJ] 2869번 달팽이는 올라가고 싶다 (C++, Python) (0) | 2022.02.01 |
[백준 / BOJ] 1193번 분수찾기 (C++, Python) (0) | 2022.02.01 |
@Reo :: 코드 아카이브
자기계발 블로그