[백준] 2839 설탕 배달

서은경·2022년 11월 21일
0

CodingTest

목록 보기
36/71

상근이는 왜 최대한 적은 봉지로 배달하려고 해서 날 힘들게 하는걸까? 그냥 되는대로 배달할 것이지.. 어차피 무게는 같구만..

package baekjoon;

import java.util.Scanner;

public class Main_2839 {
    static int[] dp;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();

        dp = new int[N+1];
        System.out.println(dp(N));
    }
    public static int dp(int n) {
        if (n == 4 || n == 7) {
            return -1;
        }
        else if (n % 5 == 0) {
            return (n / 5);
        }
        else if (n % 5 == 1 || n % 5 == 3) {
            return (n / 5) + 1;
        }
        else if (n % 5 == 2 || n % 5 == 4) {
            return (n / 5) + 2;
        } else {
            return -1;
        }
    }
}

이건 사실 dp라기보다 수학적 규칙찾기에 더 가까워서 풀이랄게 딱히 없다. 그것이 dp인걸까..? n이 5로 나눠진다면 무조건 5로 나눠 반환한다. 왜냐하면 가장 큰 수로 나뉘기 때문에 적은 봉지를 배달할 수 있기 때문.. 5로 나눴을때 1이나 3이 남았다? 그럼 5로 나누고 3짜리 설탕봉지를 하나 가져가면 된다. 8과 11 처럼! 2나 4가 남는다? 5로 나누고 두봉지 가져간다. 12나 14처럼 (3+3+3+3 , 3+3+3+5)
이런 수학적규칙..

0개의 댓글

관련 채용 정보