[Java] 백준 25304 영수증

문제

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

영수증에 적힌,

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

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

 

입력

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

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

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

 

출력

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

 

 

1) 문제분석하기

  • 구매한 각 물건의 가격과 개수 파악하기
  • 구매한 물건들의 총 금액 알기
  • 물건 가격 * 개수 = 금액 맞는지 확인하기

 

2) 요구조건 구현하기

  • 총 금액 X
  • 물건 종류의 수 N
  • 물건 가격 * 개수 = 금액 들의 총합이 X와 맞으면 Yes 아니면 No 만들기
    • 위 조건을 어떻게 만들지가 중요

 

3) 슈도코드 작성하기

scanner 입력
int X = 입력
int N = 입력

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

	if(위 로직) {
		sum = N;
		sout("Yes");
	} else {
		sout("No");
	}
	
}

 

 

4) 코드 작성하기

import java.util.Scanner;

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

		int X = sc.nextInt();
		int N = sc.nextInt();
		int sum =0;

		for (int i = 0; i <N ; i++) { //N개의 수만큼 for문을 돌린다.
			int a = sc.nextInt();
			int b = sc.nextInt();
			sum += a*b;
		}
		if(sum==X) {
			System.out.println("Yes");
		}
		if(sum!=X) {
			System.out.println("No");
		}
	}
}

 

이상 입니다.

728x90