알고리즘/백준
1049번 : 기타줄
코딍코딍
2022. 6. 28. 13:01
https://www.acmicpc.net/problem/1049
1049번: 기타줄
첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주
www.acmicpc.net
문제
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt(); sc.nextLine();
int pkMin=1000;
int piMin=1000;
for(int i=0;i<m;i++) {
int a = sc.nextInt();
int b = sc.nextInt(); sc.nextLine();
if(a<pkMin) pkMin=a;
if(b<piMin) piMin=b;
}
int x = (n/6)*pkMin + (n-(n/6)*6)*piMin;
int y = ((n/6)+1)*pkMin;
int z = n*piMin;
if(x<=y && x<=z) System.out.println(x);
else if(y<=x && y<=z) System.out.println(y);
else System.out.println(z);
}
}
해결방법
줄을 교체하려 할 때 최소 비용을 구하는 경우의 수는 3가지이다.
1. 패키지 + 낱개로 사는 경우
2. 패키지로만 사는 경우
3. 낱개로만 사는 경우
이렇게 3가지를 비교하기 위해 우선 패키지의 최소금액과 낱개의 최소금액을 구해야 한다.
구한뒤 단순하게 비교만 해주면 문제는 해결된다.