[C]백준_25304 : 영수증

Alal11·2022년 9월 17일
0
post-thumbnail

출처

https://www.acmicpc.net/problem/25304


문제

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

영수증에 적힌,

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

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


입력

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

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

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


출력

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


제한

  • 1X10000000001 ≤ X ≤ 1\,000\,000\,000
  • 1N1001 ≤ N ≤ 100
  • 1a10000001 ≤ a ≤ 1\,000\,000
  • 1b101 ≤ b ≤ 10

예제 입출력


알고리즘 분류

  • 수학
  • 구현
  • 사칙연산

➡️문제 분석

총 금액 X, 물건 종류 N, N개의 물건 가격 a와 개수 b가 입력된다.

영수증에 적힌 총 금액과 구매한 물건의 총 금액이 일치하는지 판단해본다.


➡️코드(⭕)

#include <stdio.h>

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

	scanf("%d\n%d", &X, &N);

	for (int i = 0; i < N; i++) {
		scanf("%d %d", &a, &b);
		
		hap += (a * b);
	}

	if (X == hap) {
		printf("Yes\n");
	}
	else
		printf("No\n");

	return 0;
}

➡️코드 분석

  1. 총 금액 X, 물건 종류의 수 N, 물건 가격 a와 개수 b, 구매한 물건의 누적 금액을 담을 변수 hap을 정의한다.
    누적합 담을 변수는 0으로 초기화 해준다.

  2. X와 N을 입력한다.

  3. for 문으로 N개의 a와 b를 입력하고, (a * b)의 값을 hap에 누적시켜 더해준다.

  4. X와 hap의 값이 같으면 Yes를 출력하고, 다르면 No를 출력한다.

0개의 댓글