728x90
반응형
https://www.acmicpc.net/problem/21176
풀이
K(재료 갯수), R(레시피 갯수)를 입력받습니다.
첫줄은 소유하고 있는 재료의 갯수들, 다음줄부터 레시피에 필요한 재료의 갯수들과 마지막에 금액이 입력됩니다.
소유하고 있는 재료들를 사용하여 금액을 판매할 수 있는 최대 금액을 구하는 문제입니다.
처음에 받은 재료의 갯수를 배열에 저장시켜두고,
레시피의 갯수만큼 반복하면서 min(소유재료갯수 / 사용재료갯수)를 통해 해당 레시피를 만들 수 있는 수량을 구합니다.
그리고 수량을 마지막에 입력받은 금액과 곱한 값의 최대값을 구해주면 되는 문제입니다.
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int k = Integer.parseInt(st.nextToken()), r = Integer.parseInt(st.nextToken());
int[] num = new int[k];
st = new StringTokenizer(br.readLine());
for(int i = 0; i < k; i++) {
num[i] = Integer.parseInt(st.nextToken());
}
int max = 0;
while(r --> 0) {
st = new StringTokenizer(br.readLine());
int min = 100000;
for(int i = 0; i < k; i++) {
int n = Integer.parseInt(st.nextToken());
if(n != 0) {
min = Math.min(min, num[i] / n);
}
}
max = Math.max(max, min * Integer.parseInt(st.nextToken()));
}
System.out.print(max);
}
}
첫솔입니다!
728x90
반응형
'백준 > 20001 - 25000' 카테고리의 다른 글
[백준] 22864번 : 피로도(JAVA) (0) | 2021.08.10 |
---|---|
[백준] 22351번 : 수학은 체육과목입니다 3(JAVA) (0) | 2021.08.01 |
[백준] 21312번 : 홀짝 칵테일(JAVA) (0) | 2021.07.25 |
[백준] 21603번 : K 2K 게임(JAVA) (0) | 2021.07.25 |
[백준] 21567번 : 숫자의 개수 2(JAVA) (0) | 2021.07.25 |
댓글