티스토리 뷰

Algorithm/Baekjoon Online Judge

백준 2839 설탕배달 : C++

감성적인 개발자 2021. 8. 17. 15:20

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

 

2839번: 설탕 배달

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

www.acmicpc.net

 

#include <iostream>

using namespace std;

int main(){
  int n, three, fiv;
  cin >> n;

  int tmp = n % 5;
  fiv = n/5;

  // 14kg 일 경우 tmp는 4kg
  if(fiv >= 0){
    // 4kg은 3으로 나누어 떨어지지 않기 때문에 5kg을 하나 제거
    while(tmp % 3 != 0){
      fiv--;
      tmp += 5;
    }
    // 4kg -> 9kg 으로 변경한 뒤 3kg 봉지 담기
    if(tmp % 3 == 0){
      three = tmp/3;
    }
  }
  
  // 5kg을 모두 제거했음에도 3kg으로도 안나누어진다면
  if(fiv < 0){
    cout << -1;
    return 0;

  }
  cout << fiv + three;
}

 

1. 5kg 봉지에 모두 담는다.

2. 남은 설탕이 3kg 봉지로 나누어 떨어지지 않는다면 5kg 봉지를 하나씩 제거해가며 체크한다.

3. 5kg 봉지를 제거하던 중 3kg으로 나누어 떨어지는 경우가 있다면 정답 출력

3-1. 5kg 봉지를 모두 제거했음에도 3kg으로 나누어 떨어지지 않느다면 -1 출력

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함