• Home
  • About
    • 코드좀비 photo

      코드좀비

      An amazing website.

    • Learn More
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

[BOJ] 백준 2839 설탕 배달 간단한설명과 코드 C++

28 Mar 2020

Reading time ~1 minute

문제 정보

백준 ( BOJ ) 2839 설탕 배달

문제 풀이 : 시뮬레이션

문제 출처 : https://www.acmicpc.net/problem/2839

시작 Thinking

가장 적은 수로 만드는 방법 ?

=> 5를 먼져 채운다.

즉 5로 채워넣고, 나머지 3으로 채워주면 되는 문제입니다.

그렇다면 어떻게 해 나가야 할까요?

14를 예로 들어서 설명 해 보겠습니다.

3kg 5kg 남은양 
0   2    4
1   2    1
1   1    6
2   1    3
3   1    0

이런식으로 하시면 됩니다.

3kg로 채울 수 없을 때, 5kg을 빼버리고, 남은양에 5kg 을 더해주면 됩니다.

즉, 남은양이 3kg 미만일때 5kg을 빼버리면 됩니다.

3kg은 매번 빼주면서, 남은 양이 0 이하가 될때까지 반복 해 주시면 됩니다.

0이라면 딱 맞게 떨어진 것이고,

0 미만 음수라면 안맞아 떨어지는 것이 되겠죠.

코드

#include <iostream>

using namespace std;


int main() {
	int n;
	int vinil3 = 0;
	int vinil5 = 0;
	int remain = 0;

	cin >> n; 

	vinil5 = n / 5;
	remain = n % 5;

	while (remain > 0) {
		if (remain < 3 && vinil5>0) {
			vinil5--;
			remain += 5;
		}
		vinil3++;
		remain -= 3;
	}
	if (remain != 0)
		cout << -1;
	else
		cout << vinil3 + vinil5;
}



백준C++시뮬레이션 Share Tweet +1