문제
영수증에 적힌 총 금액과 각 물건의 가격, 개수가 주어질 때, 총 금액이 물건들의 합계와 일치하는지 확인하라.
입력
첫째 줄에 총 금액 X, 둘째 줄에 물건 종류 수 N, 이후 N줄에 각 물건의 가격 a와 개수 b가 주어진다.
출력
총 금액이 일치하면 Yes, 아니면 No를 출력한다.
예제
| 입력 | 출력 |
|---|---|
260000 4 20000 5 30000 2 10000 6 5000 8 | Yes |
풀이
총 금액에서 각 물건의 가격 합계를 차감하여 0이 되는지 확인한다.
- 총 금액 total을 입력받는다
- 각 물건에 대해 (가격 * 개수)를 total에서 뺀다
- 모든 물건을 처리한 후 total이 0이면
Yes, 아니면No를 출력한다
핵심 아이디어: 별도의 합계 변수를 만들지 않고 총 금액에서 직접 차감하면 한 번의 비교로 검증할 수 있다.
코드
package ASP_study.day299;
import java.util.Scanner;
public class Day295BOJ25304영수증 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int total = sc.nextInt();
int count = sc.nextInt();
for (int i = 0; i < count; i++) {
int price = sc.nextInt();
int num = sc.nextInt();
total = total - (price * num);
}
if (total == 0)
System.out.println("Yes");
else
System.out.println("No");
}
}복잡도
- 시간: O(N)
- 공간: O(1)