문제
25304번: 영수증
준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것
www.acmicpc.net
메모
- for문를 활용한다.
- 개별 상품의 개수와 가격은 3번째 줄부터 있다.
- 주어진 데이터를 사용할 때 줄 바꿈(\n), 공백(" ")에 유의한다.
정답
// test.txt
260000
4
20000 5
30000 2
10000 6
5000 8
// test.js
let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split("\n"); // 제출
// let input = fs.readFileSync("test.txt").toString().split("\n"); // 테스트
let receiptPrice = Number(input[0]); // 영수증에 적힌 총 금액(데이터의 1번째 줄)
let totalAmount = Number(input[1]); // 구매한 물건 종류의 수(데이터의 2번째 줄)
let totalPrice = 0; // 총 가격 변수를 우선 0으로 설정
for (let i = 2; i < totalAmount + 2; i++) {
// "i = 2"로 설정한 이유는 개별 물건 가격과 개수가 3번째 줄부터 나오기 때문
// "totalAmount + 2"는 영수증 전체 줄 개수
let itemData = input[i].split(" ").map(Number); // 개별 물건 가격과 개수를 공백으로 분리
let itemPrice = itemData[0] * itemData[1]; // 개별 물건의 총 가격
totalPrice += itemPrice; // 물건 가격들이 하나씩 누적되어 전체 물건의 총 가격을 도출
}
if (receiptPrice === totalPrice) {
console.log("Yes");
} else {
console.log("No");
}