본문 바로가기
알고리즘 문제풀이/백준

백준 25304번 영수증 정답 코드

by 차누감 2024. 10. 9.
반응형

문제

준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다.

영수증에 적힌,

  • 구매한 각 물건의 가격과 개수
  • 구매한 물건들의 총 금액

을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자.

입력

첫째 줄에는 영수증에 적힌 총 금액 X가 주어진다.

둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 N이 주어진다.

이후 N개의 줄에는 각 물건의 가격 a와 개수 b가 공백을 사이에 두고 주어진다.

출력

구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes를 출력한다. 일치하지 않는다면 No를 출력한다.


정답코드

1. Python

# 총 금액 X 입력받기
X = int(input())

# 물건의 종류의 수 N 입력받기
N = int(input())

# 물건의 총 비용 합 계산
total_cost = 0
for _ in range(N):
    a, b = map(int, input().split())  # 물건의 가격 a와 개수 b 입력받기
    total_cost += a * b  # 각 물건의 총 비용을 더함

# 총 비용이 주어진 금액 X와 같은지 확인
if total_cost == X:
    print("Yes")
else:
    print("No")

2. Java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 총 금액 X 입력받기
        int X = sc.nextInt();

        // 물건의 종류의 수 N 입력받기
        int N = sc.nextInt();

        // 물건의 총 비용 합 계산
        int total_cost = 0;
        for (int i = 0; i < N; i++) {
            int a = sc.nextInt();  // 물건의 가격 a 입력
            int b = sc.nextInt();  // 물건의 개수 b 입력
            total_cost += a * b;   // 각 물건의 총 비용을 더함
        }

        // 총 비용이 주어진 금액 X와 같은지 확인
        if (total_cost == X) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
    }
}

3. C++

#include <iostream>
using namespace std;

int main() {
    int X, N;
    // 총 금액 X 입력받기
    cin >> X;

    // 물건의 종류의 수 N 입력받기
    cin >> N;

    // 물건의 총 비용 합 계산
    int total_cost = 0;
    for (int i = 0; i < N; i++) {
        int a, b;
        cin >> a >> b;  // 물건의 가격 a와 개수 b 입력받기
        total_cost += a * b;  // 각 물건의 총 비용을 더함
    }

    // 총 비용이 주어진 금액 X와 같은지 확인
    if (total_cost == X) {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }

    return 0;
}

4. JavaScript

const readline = require('readline').createInterface({
    input: process.stdin,
    output: process.stdout
});

const input = [];
readline.on('line', line => {
    input.push(line);
}).on('close', () => {
    const X = parseInt(input[0]);  // 첫 번째 줄: 총 금액 X
    const N = parseInt(input[1]);  // 두 번째 줄: 물건의 종류 수 N
    let total_cost = 0;

    for (let i = 2; i < 2 + N; i++) {
        const [a, b] = input[i].split(' ').map(Number);
        total_cost += a * b;  // 각 물건의 총 비용을 더함
    }

    // 총 비용이 주어진 금액 X와 같은지 확인
    console.log(total_cost === X ? "Yes" : "No");
});

5. C

#include <stdio.h>

int main() {
    int X, N, a, b, total_cost = 0;

    // 총 금액 X 입력받기
    scanf("%d", &X);

    // 물건의 종류의 수 N 입력받기
    scanf("%d", &N);

    // 물건의 총 비용 합 계산
    for (int i = 0; i < N; i++) {
        scanf("%d %d", &a, &b);  // 물건의 가격 a와 개수 b 입력받기
        total_cost += a * b;  // 각 물건의 총 비용을 더함
    }

    // 총 비용이 주어진 금액 X와 같은지 확인
    if (total_cost == X) {
        printf("Yes\n");
    } else {
        printf("No\n");
    }

    return 0;
}
반응형

댓글