[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부터 나눠본다면 답이 나옵니다.
이 문제는 힌트를 받아 풀었습니다.
소스코드 :
#includeusing 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; }
댓글
댓글 쓰기