백준 algorithm

백준 2839 - 설탕 배달

cosmohoo 2020. 6. 5. 23:02
반응형

문제 설명

 

 

=> 브루트 포스 문제는 아니지만, 브루트 포스 문제로 해결하였습니다. 

 

 

  • 5를 3보다 더 많이 써야 효율적인 알고리즘입니다.

  • 5를 더 많이 쓰기 위해 이중for문의 안쪽에 5를 위치하였습니다. 

  • 그후 3를 바깥쪽 for문에 위치하였습니다.

  • 입력 받은 값과 i j와 3 5 를 곱한 값이 같은지 확인합니다.

  • 이중for문이 끝나도 원하는 값이 없을 경우 -1을 출력합니다. 

 

 

 

<code>

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>


using namespace std;


int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    
    int N;
    cin >> N;
    
    int FiveLimit = (N / 5);
    int ThreeLimit = (N / 3);
    
    for(int i=0; i<=ThreeLimit; i++)
    {
        for(int j=0; j<=FiveLimit; j++)
        {
            if((3*i) + (5*j) == N)
            {
                cout <<i+j<<'\n';
                return 0;
            }
        }
    }
    cout <<-1<<'\n';
    return 0;
}

 

 

실행화면

 

반응형