| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 27 | 28 | 29 | 30 |
- 21313 nodejs
- 백준1789
- 11399 node.js
- 모던자바스크립트 딥다이브
- 백준1026
- 자바스크립트 일급객체
- 1026 node.js
- const
- 자바스크립트 딥다이브
- CSS flex
- 백준21313
- 코딩
- 개발자
- flex box
- 노개북
- 11047 node.js
- 모던자바스크립트DeepDive
- 14655 nodejs
- 노마드북클럽
- 1931 node.js
- 1789 node.js
- 백준25176
- 개인프로젝트
- IT5분잡학사전
- 2217 node.js
- 1541 node.js
- 모던자바스크립트
- 노마드스터디
- Javascript
- 자바스크립트 함수
- Today
- Total
캐또's coding
25304 - 영수증 - node.js 본문
문제
준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다.
영수증에 적힌,
- 구매한 각 물건의 가격과 개수
- 구매한 물건들의 총 금액
을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자.
입력
첫째 줄에는 영수증에 적힌 총 금액 X가 주어진다.
둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 N이 주어진다.
이후 N개의 줄에는 각 물건의 가격 a와 개수 b가 공백을 사이에 두고 주어진다.
출력
구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes를 출력한다. 일치하지 않는다면 No를 출력한다.
제한
- 1≤X≤1000000000
- 1≤N≤100
- 1≤a≤1000000
- 1≤b≤10
예제 입력 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
출처
이전에 나왔던 덧셈 문제와 유사하다.
2022.08.14 - [백준 문제 풀이/문제 풀이] - 10950 - A+B - 3 - node.js
반복문을 돌릴 횟수와 그 반복 횟수에 맞춰 계산하는 것이다.
1. 첫 번째 줄의 숫자는 비교할 대상인 총 가격이다.
2. 두 번째 줄의 숫자는 반복문을 돌릴 횟수다.
3. 세 번째 줄부터는 반복문으로 앞에 나온 숫자A와 뒤에 나온 숫자 B를 곱한다.
4. 반복문을 돌면서 A와 B를 곱한 결과들을 모두 더한다.
5. 반복문의 결과로 나온 값과 첫 번째 줄의 숫자를 비교하여 같으면 Yes, 다르다면 No를 출력한다.
const input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
const total = Number(input[0]);
const times = Number(input[1]);
let result = 0;
for (let i = 2; i <= times + 1; i++) {
let items = input[i].split(" ").map(Number);
let [A, B] = items;
result = result + A * B;
}
if (total == result) {
console.log("Yes");
} else {
console.log("No");
}
첫 번째 줄에서 입력받은 값들을 줄넘김으로 나눠 받아온다. input의 0번째는 총 가격이다. input의 1번째는 반복문이 돌아갈 횟수다. 반복문이 돌아간 뒤 total과 비교할 result를 정해둔다.
반복문에서는 input의 2번째부터 times+1번째까지(그렇게 해야 마지막 입력값까지 돈다) i++로 돌면서, 각 input[i]에 대해서 공백으로 나눈 값을 A, B에 할당하고, result에 A*B의 값을 반복해서 더한다.
만약 total과 result가 같다면 Yes를 둘이 다르다면 No를 출력하면 문제 해결
'기초 공부 > 백준 문제 풀이' 카테고리의 다른 글
| 11021 - A+B - 7 - node.js (0) | 2022.08.15 |
|---|---|
| 15552 - 빠른 A+B - node.js (0) | 2022.08.15 |
| 8393 - 합 - node.js (0) | 2022.08.14 |
| 10950 - A+B - 3 - node.js (0) | 2022.08.14 |
| 2739 - 구구단 - node.js (0) | 2022.08.14 |