[BOJ/백준] 26933번 : Receptet (Java)
📘 백준 26933번 : Receptet
🔤 문제 번역
문제
당신은 요리를 하기로 결심했습니다. 요리를 하기 위해서는 N개의 재료가 필요합니다.
각 재료에 대해:
집에 이미 얼마나 있는지 (
H),총 얼마가 필요한지 (
B),부족한 양을 살 경우 단가 (
K)
가 주어집니다.
당신은 각 재료마다 부족한 양만큼만 구매해야 합니다. 요리를 하기 위한 총 비용을 계산하세요.
입력
첫 번째 줄에 정수 N이 주어집니다. (1 ≤ N ≤ 5) — 필요한 재료의 개수입니다.
다음 N개의 줄에는 각각 세 정수 H, B, K가 주어집니다.
H: 현재 가지고 있는 양 (0 ≤ H ≤ 1000)B: 필요한 전체 양 (0 ≤ B ≤ 1000)K: 단위당 가격 (1 ≤ K ≤ 1000)
출력
요리에 필요한 모든 재료를 사기 위한 총 비용을 출력하세요.
💡 문제 풀이
각 재료에 대해 추가로 구매하는 양에 대한 금액
= (총 필요한 양 - 집에 이미 있는 양) * 부족한 양을 살 경우의 단가
✅ 코드 (Java)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
// https://www.acmicpc.net/problem/26933
// 추가로 구매하는 양에 대한 금액 = (총 필요한 양 - 집에 이미 있는 양) * 부족한 양을 살 경우의 단가
public class B26933_Receptet {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int totalCost = 0; // 요리를 하기 위한 총 비용
for (int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int H = Integer.parseInt(st.nextToken()); // 집에 이미 있는 양
int B = Integer.parseInt(st.nextToken()); // 총 필요한 양
int K = Integer.parseInt(st.nextToken()); // 부족한 양을 살 경우의 단가
int addCost = (B - H) * K; // 추가 구매시 금액
if (addCost > 0) { // 추가 금액이 양수면 구매
totalCost += addCost;
}
}
System.out.println(totalCost); // 출력
br.close();
}
}