🤜 코테

백준 문제 풀이 : 설탕 배달 (2839)

wnwlals13 2024. 5. 10. 13:11

 

재도전필요!⭐️

 

나의 문제 풀이

우선 최소 봉지의 개수를 구하기 위해 5킬로 봉지를 최대로 들어야 한다는 것은 파악했다. 하지만, 문제 풀이 구현 방법에 대해서 알기 어려웠다. 

 

- 처음 아이디어 : N을 5로 최대한 나누고 몫을 센다. 그리고 N을3으로 최대한 나누고 몫을 센다. (실패)

- 두번째 아이디어 : 5의 배수, 3의 배수, 그외의 경우를 분기처리한다. (비효율...실패)

- 구글링 : N이 0보다 클때까지, 3을 뺀고 봉지 수를 더한다. 5의 배수인 경우에는 3을 빼기 전에 5로 나누고 몫을 센다.

 

그리디 문제 유형으로 다 해본다는 마음으로 접근했다. 그러나 나누기만 생각했지 빼기를 생각하지 못했다... 아쉽다. 어려운문제라고 생각하지 않았는데 바로 틀려서ㅠ 문제는 역시 많이 많이 풀어봐야 한다!

 

 

풀이

const fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString();

let result = 0;

while (input > 0) {
    if ( input%5==0 ) {
        result += Math.floor(input/5);
        input %= 5;
        break;
    }
    input -= 3;     //-3
    result += 1;    //봉지의개수 +1
}

console.log(input < 0 ? -1 : result);

 

TIL

많은 문제를 풀어보자! 사칙연산을 활용하자!

 

링크

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