본문 바로가기

코딩/알고리즘

백준) 25304 - 영수증 JS

📌 문제 링크

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


📌 문제 탐색하기

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

시간복잡도

  • O(n)

📌 코드 설계하기

  1. 문제의 입력값을 개행으로 분리하고 `total`, `count`, `...input`으로 구조분해할당 합니다.
  2. `input`은 띄어쓰기로 분리하여 숫자로 변환합니다.
  3. 주어진 배열의 모든 값을 더하기 위해 `sum`을 초기화합니다.
  4. 반복문을 돌면서 주어진 제품과 개수를 곱하여 `sum`에 더합니다.
  5. 반복문이 끝나면 `sum`과 `total`을 비교하여 올바른 값을 출력합니다.

📌 정답 코드

//https://www.acmicpc.net/problem/25304
export {};

const fs = require("fs");
const filePath =
  process.platform === "linux" ? "/dev/stdin" : __dirname + "/input1.txt";
const [total, count, ...input] = fs
  .readFileSync(filePath)
  .toString()
  .trim()
  .split("\n");
const product = input.map((x: string) => x.split(" ").map(Number));

let sum = 0;
for (let i = 0; i < count; i++) {
  sum += product[i][0] * product[i][1];
}

console.log(sum === Number(total) ? "Yes" : "No");

'코딩 > 알고리즘' 카테고리의 다른 글

백준) 10818 - 최소, 최대 JS  (0) 2024.11.08
백준) 8393 - 합 JS  (0) 2024.11.07
백준) 15552 - 빠른 A+B JS  (0) 2024.11.05
백준) 11382 - 꼬마 정민 JS  (0) 2024.11.04
백준) 11866 - 요세푸스 문제 0 JS  (0) 2024.10.27