Algorithm

[Algorithm] 백준 25304번 : 연수증

펭귄코기 2023. 2. 19. 23:55

문제

준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다.

영수증에 적힌,

  • 구매한 각 물건의 가격과 개수
  • 구매한 물건들의 총 금액

을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자.

 

입력

첫째 줄에는 영수증에 적힌 총 금액 X가 주어진다.

둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 N이 주어진다.

이후 N개의 줄에는 각 물건의 가격 a와 개수 b가 공백을 사이에 두고 주어진다.

 

출력

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

일치하지 않는다면 No를 출력한다.

 

풀이

문제에서 요구하는데로 따라가면 된다

첫번째 줄에는 총금액

두번째 줄에는 구매한 횟수

세번째 줄 부터 처음에는 가격, 다음에는 갯수를 찍는다

결론적으로 세번째 줄 부터나온 가격 * 갯수 를 총 합해서

첫번째 줄에서 나온 총금액과 비교를한다

두개가 같다면 Yes 다르면 No 를 출력한다

이를 위해 두번째 줄에 나온 횟수를 for문에서 반복횟수로 지정한다

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 첫번째줄 총금액
        // 두번째줄 구매 개수
        // 세번째줄부터 첫번째에 가격 두번째에 개수

        // 테스트 케이스 숫자 받는다
        int total;
        int sum = 0;
        int n;
        int a;
        int b;

        total = sc.nextInt();
        n = sc.nextInt();

        for(int i=0; i<n; i++) {
            a = sc.nextInt();
            b = sc.nextInt();
            sum += a*b;
        }

        if (sum == total) {
            System.out.println("Yes");
        }else {
            System.out.println("No");
        }
    }
}