Post

[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();
	}
}


💾 제출 결과


보러 가기