작심 24/7

[백준] 4839번 설탕 배달 본문

백준

[백준] 4839번 설탕 배달

모닝수박 2020. 5. 20. 02:16

- 2018년도 게시글

 

 

2839번: 설탕 배달

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

www.acmicpc.net

처음엔 정수 N에 5를 반복문으로 빼는 형식으로 하다가 인풋 중에

4999가 들어가면 5킬로그램 998개와 3킬로그램 3개, 총 1001이 나와야 하는데

이 방식대로라면 5를 두 번 빼면 4989라는 3의 배수가 나오기 때문에 여기서 멈춰버려

합의 최솟값이 나오지 않는다.

그래서 갈아엎고 정수 N을 5로 나눈 후 거기서 -1한 값을 5로 곱하고

그 값을 N에서 뺀 수가 3의 배수이면,,,,

복잡해 보이지만 생각해낸 모든 예제는 통했던 방법을 써봤으나 빛의 속도로 틀렸다.

접으려다가 마지막으로 5 대신 3을 기준으로 풀어보기로 하고

5를 뺀 방식의 소스에 3을 기준으로 해서 좀 고치니까 풀렸다.

#include <iostream>
using namespace std;
int main() {
    int N, n;
    cin >> N;
    n = N;
    int res = -1;
    int fiv = 0, thr = 0;
    if (N % 15 == 0 || N % 5 == 0)cout << N / 5;
    else {
        while (1) {
            N = N - 3;
            thr++;
            if (N % 5 == 0) {
                fiv = N / 5;
                res = thr + fiv;
                break;
            }
            else if (N < 0) break;
        }
        cout << res;
    }
    return 0;
}

'백준' 카테고리의 다른 글

[백준] 11720번 숫자의 합  (0) 2020.05.20
[백준] 15552 빠른 A+B  (0) 2020.05.20
[백준] 11648번 지속  (0) 2020.05.20
[백준] 10808번 알파벳 개수  (0) 2020.05.20
[백준] 11719번 그대로 출력하기 2  (0) 2020.05.20
Comments