반응형

● 문제 접근 과정

1. 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.

2. n값 만큼 무게를 맞춰야 하기에 일단 n값을 입력 받는다.

3. 5KG 짜리 봉지 반복문과 3KG 짜리 봉지 반복문을 만들어 준다.

4. 3KG * j + 5KG * i 값이 n값과 같아야 하기 때문에, 조건문을 적어주고, 조건에 하나도 해당이 되지 않는다면, 카운터 변수를 이용하여 -1를 출력한다.

● 구현

#include <algorithm>
#include <cstring>
#include <iostream>
using namespace std;

int main(void) {
  int n;
  int cnt = 0;
  int min = 5001;
  cin >> n;
  for (int i = 0; i < n; i++) // 5KG 짜리 봉지
  {
    for (int j = 0; j < n; j++) // 3KG 짜리 봉지
    {
      if ((i * 5) + (j * 3) == n && i + j < min) {
        min = i + j;
        cnt++;
      }
    }
  }
  if (cnt == 0)
    cout << -1;
  else
    cout << min;
}

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

 

2839번: 설탕 배달

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

www.acmicpc.net

 

반응형

+ Recent posts