IT/BaekJoon

[백준/JAVA] 25304번 영수증 문제

Buang 2023. 4. 9. 22:48
반응형

1. 문제

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

 

25304번: 영수증

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

www.acmicpc.net

 


2. 풀이

 

1. 영수증에 쓰인 총 합계와

2. 각각의 (물건 가격 * 물건 수량)을 곱해서 더한 값이

3. 서로 같은지 판별하면 된다.

 

이게 무슨 말이가 하면

 

내가 만원짜리 A과자를 2개 사고

삼만원짜리 B과자를 1개 샀다고 해보자.

그럼 내가 구입한 물건의 종류는 A와 B 총 2개고

총 지불해야 할 돈은 50,000원이 된다.

 

계산대에 가서 나는 50,000원을 결제했고

영수증에 총합계란에는 50,000원이 작성되어 있었다.

 

그렇다면,

 

1. 영수증에 쓰인 총 합계

= 50,000원

 

2. 각각의 (물건 가격 * 물건 수량)을 곱해서 더한 값

= (10,000 * 2) + (30,000 * 1)

= 50,000원

 

3. 두 개의 값이 서로 같은지 판별하기

즉 1번에서 나온 50,000원과

2번에서 나온 최종 값이 같은지 확인하면 된다.

 

 

프로그램 순서

 

1. 영수증에 쓰인 총 합계 입력받기

 

2. 구매한 물건의 종류 입력받기

    2-1. 구매한 물건의 개수만큼 반복문 돌기(모든 물건 값 더하는 것)

    2-2. 물건 가격과 구입한 물건의 개수 곱해주기

 

3. 영수증에 쓰인 총 합계와 사용자가 입력한 각각의 (물건개수*물건가격)의 총 합계가 같다면

    3-1. Yes 출력

    3-2. 아닐 경우 No 출력

 

 

 

3. 코드

 

package loop;

import java.util.Scanner;

public class receipt_25304 {

    public static void main ( String[] args ) {


        Scanner scan = new Scanner(System.in);
        int receiptTotal = scan.nextInt(); // 영수증에 쓰인 총 합계
        int numberOfTypesOfObject = scan.nextInt(); // 물건의 종류 개수

        int priceTotal = 0;

        for (int i=0; i<numberOfTypesOfObject; i++) {

            int priceOfObject = scan.nextInt(); // 물건의 가격
            int numberOfObject = scan.nextInt(); // 물건의 개수


            int price = numberOfObject * priceOfObject; // 물건 개수 * 물건 가격
            priceTotal += price; //각각의 (물건 개수 * 물건 가격)의 합을 누적해서 더해준다.

        }


        scan.close();


        if(receiptTotal == priceTotal) { //영수증에 쓰인 값과 사용자가 입력한 (물건 개수*물건 가격)의 총합이 같다면
            System.out.println("Yes"); //yes 출력하시오
        } else
            System.out.println("No");


    }

}

 

반응형