티스토리 뷰

algorithm/problem solving

BOJ 2839 설탕배달

무니웜테일패드풋프롱스 2020. 3. 31. 22:12
#include <iostream>
using namespace std;

int solve(int n) {
	int sum = 0;
	int min = 0;
	if (n == 4 || n == 7) return -1;
	while (1) {
		while (sum <= n) {  //최대한 5kg로 채워본다
			sum += 5; min++;
		if (sum == n) return min;} //값이 일치할시 끝
		while (sum > n) { sum -= 5; min--;} //만약 넘었다면 5kg을 빼준다.
		while (sum <= n) {  //3kg을넣는다.
			sum += 3; 
		    min++; 
		if (sum == n) return min;  ///값 일치할시 끝 
		}
	}
}

int main(void) {
	int N;
	cin >> N;
	cout << solve(N);
}

로직

1) 자루의 무게가 N보다 작거나 같을 때 까지 5 kg로 자루를 다 채워본다

->자루의 무게가 N과 같다면 ->종료 

2)자루의 무게가 N보다 크다면 -> 자루의 무게가 N보다 작거나 같아질 때 까지 자루에서 5kg를 뺀다.

3)자루의 무게가 N보다 작거나 같을 때 까지 3kg를 추가한다.

  -> 자루의 뭬가 N과 같다면 -> 종료

-> 자루의 무게가 N보다 커지게 되었다면 앞에서부터 다시시작

 

 

'algorithm > problem solving' 카테고리의 다른 글

BOJ 1764 듣보잡  (0) 2020.04.04
BOJ 11047 동전0  (0) 2020.04.04
BOJ 11866 요세푸스 문제 0  (0) 2020.03.22
B0J 1874 스택수열  (0) 2020.03.18
BOJ 9020 골드바흐의 추측  (0) 2020.03.12
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함