[백준] 2839: 설탕 배달

dBoyeob·2022년 4월 18일
0

Problem-Solving

목록 보기
6/10
post-thumbnail

문제

[Bronze_I] 정답 비율: 34%

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

생각

  1. 0~(5로 나눈 몫)만큼 반복하면서, 5로 나눈 나머지를 3으로 나눈 나머지가 0이 되면 가능한 경우이다.

배운 점

  • 여러 가지를 고려해야 할 경우 큰 수부터 고려하면 반복 횟수가 작아진다(편하다) !

코드

#include <stdio.h>

int main(){
    // 0. 변수 설정 : 입력받은 무게, 5로 나눈 몫, 반복 중 봉지 수, 최소 봉지 수
    int weight, repeat, num, rem, min = 0;

    // 1. 무게 입력받기
    scanf("%d", &weight);

    // 2. 5로 나눈 몫 구하기
    repeat = weight/5;

    // 3. 0부터 (5로 나눈 몫)까지 반복하면서 나머지를 3으로 나눈 나머지 구하기
    //     3-1. (나머지 == 0) 이면 봉지 수를 최소 봉지 수와 비교
    for(int i=0; i<=repeat; i++){
        rem = weight - i*5;
        if(rem%3 == 0){
            num = i + rem/3;
            if(min == 0 || num < min)
                min = num;
        }
    }

    if(min == 0)
        printf("%d", -1);
    else
        printf("%d", min);
        
    return 0;
}
profile
HGU Computer Science 21 && CRA 21-1 👨🏻‍💻

0개의 댓글