[Problem Solving - Baekjoon] 2839 설탕 배달

[Baekjoon Online Judge] 2839 설탕 배달

문제

문제 보기

풀이

문제 파악

  • 설탕은 5kg, 3kg 중 5kg의 갯수를 최대치로 설정 한 후 나머지를 3kg 으로 옮겨야 최소 갯수가 될 수 있음
  • 입력된 설탕의 무게(n)에 5kg 최대 갯수를 구하고 + 남은 무게를 3kg로 옮기고 나서도 남은 무게 가 있다면, 5kg 의 갯수를 줄여가면서 계산

구현

전체소스보기

int max = n/5; // 5키로 최대 갯수
int count = 0 ;
int remain = n;

while( max >= 0 ) {
    count = 0;   //변수초기화
    remain = n;

    if (max > 0 ) {
        count = max ;
        remain = remain  - (max*5);
    }

    if (remain%3 ==0) {
        count = count + (remain/3);
        remain = (remain%3);
    }

    if (remain==0) {
       //남은 무게가 없으면 끝내기
        break;
    }else {
        //5kg의 갯수를 줄여서 다시 연산
        // max = -1 이 되면 종료
        max--;
    }
}

if (remain != 0 ) {
    System.out.println(-1);
}else {
    System.out.println(count);
}

references

https://www.acmicpc.net/problem/2839