728x90
728x90
문제
준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다.
영수증에 적힌,
- 구매한 각 물건의 가격과 개수
- 구매한 물건들의 총 금액
을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자.
입력
첫째 줄에는 영수증에 적힌 총 금액 가 주어진다.
둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 이 주어진다.
이후 개의 줄에는 각 물건의 가격 와 개수 가 공백을 사이에 두고 주어진다.
출력
구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes를 출력한다. 일치하지 않는다면 No를 출력한다.
제한
예제 입력 1
260000
4
20000 5
30000 2
10000 6
5000 8
예제 출력 1
Yes
영수증에 적힌 구매할 물건들의 목록으로 계산한 총 금액은 20000 × 5 + 30000 × 2 + 10000 × 6 + 5000 × 8 = 260000원이다. 이는 영수증에 적힌 총 금액인 260000원과 일치한다.
예제 입력 2
250000
4
20000 5
30000 2
10000 6
5000 8
예제 출력 2
No
출처
University > 연세대학교 미래캠퍼스 > 2022 연세대학교 미래캠퍼스 슬기로운 코딩생활 A번
- 문제를 검수한 사람: jhnah917, yclock
- 문제를 만든 사람: junie
알고리즘 분류
- 수학
- 구현
- 사칙연산
문제 출처
https://www.acmicpc.net/problem/25304
문제 해결 방법
간단하게 문제를 해결하였다. C++ 스타일의 동적 할당(new 연산자 사용)을 사용하여 입력 받은 변수의 크기의 배열을 할당하여 문제를 해결하는데 사용하였다.
코드
#include <iostream>
using namespace std;
int main() {
cin.tie(NULL);
cout.tie(NULL);
ios_base::sync_with_stdio(false);
int X, N, sum = 0;
cin >> X >> N;
// Dynamic Allocation
int *price = new int[N];
int *amount = new int[N];
for (int i = 0; i < N; i++) {
cin >> price[i] >> amount[i];
sum += price[i] * amount[i];
}
if (X == sum) {
cout << "Yes" << endl;
}
else {
cout << "No" << endl;
}
delete(price);
delete(amount);
return 0;
}
채점 결과
참고
- [단계별로 풀어보기] > [반복문]
728x90
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ-5622][C++] 다이얼 (0) | 2022.08.24 |
---|---|
[BOJ-2908][C++] 상수 (2) | 2022.08.24 |
[BOJ-1152][C++] 단어의 개수 (0) | 2022.08.24 |
[BOJ-1157][C++] 단어 공부 (0) | 2022.08.24 |
[BOJ-3003][C++] 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2022.08.24 |
[BOJ-2675][C++] 문자열 반복 (0) | 2022.08.24 |
[BOJ-10890][C++] 알파벳 찾기 (0) | 2022.07.30 |
[BOJ-11720][C++] 숫자의 합 (0) | 2022.07.12 |