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가지를 비교하기 위해 우선 패키지의 최소금액과 낱개의 최소금액을 구해야 한다.
구한뒤 단순하게 비교만 해주면 문제는 해결된다.
'알고리즘 > 백준' 카테고리의 다른 글
1543번 : 문서 검색 (0) | 2022.06.29 |
---|---|
1339번 : 단어 수학 (0) | 2022.06.28 |
4796번 : 캠핑 (0) | 2022.06.26 |
16953번 : A -> B (0) | 2022.06.26 |
1439번 : 뒤집기 (0) | 2022.06.26 |