Post List

[BOJ] 백준 2839 설탕 배달

[BOJ] 백준 2839 설탕 배달

문제 링크 : https://www.acmicpc.net/problem/2839


한 문제가 앞에서부터 풀었을 때 풀리지 않는다면 뒤에서 부터 접근을 해봐야 합니다.
이 문제도 그렇습니다.
보통 18을 5와 3으로 나눌때, 18을 먼저 5로 나누고(18/5) 그 나머지를 3으로 나눕니다.(3/3)
두 연산을 했을때 나머지의 합은 4 입니다. 따라서 답은 4 입니다.
하지만 11을 5와 3으로 나눌때 어떻게 할까요? 11을 먼저 5로 나누면 (11/5) 나머지가 1입니다.
1을 3으로 나눌 수 없습니다. 따라서 답은 -1.. 일까요?
답은 3 입니다. 11은 3*2 + 5*1 이니까요. 즉 3부터 나눠본다면 답이 나옵니다.
이 문제는 힌트를 받아 풀었습니다.


소스코드 :

#include 
using namespace std;

int main() {
 int t;
 cin >> t;
 int cnt = 0;
 while (t>0) {
  if (t % 5 == 0) {
   cnt += t / 5;
   break;
  }
  t = t - 3;
  cnt++;
  if (t < 0) {
   cnt = -1;
   break;
  }
 }
 cout << cnt;
}

댓글