(백준/자바) 25304호: 영수증

문제 정보

제목 : 영수증

숫자 : 25304호

사용 언어: 자바

문제 링크

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

25304호: 영수증

준원은 지난주 생애 처음으로 코스트코를 찾았다.

정말 멋졌습니다.

그런데 몇 개도 안 넣었는데 의심스러울 정도로 많은 양이 나왔다!
준원은 영수증을 보고 정확한 금액을 계산했다.

www.acmicpc.net

시간 제한 메모리 제한
1 초 1024MB

문제

준원은 지난주 생애 처음으로 코스트코를 찾았다.

정말 멋졌습니다.

그런데 몇 개도 안 넣었는데 의심스러울 정도로 많은 양이 나왔다!
준원은 영수증을 보고 계산이 맞는지 확인한다.

영수증에 적힌,

  • 구입한 각 품목의 가격과 수량
  • 구매한 상품의 총 금액

그리고 구매한 상품의 가격과 개수로 계산한 총액이 영수증에 적힌 총액과 일치하는지 확인합니다.

입력

첫 번째 줄은 영수증에 적힌 총 금액입니다.

엑스주어진다

두 번째 줄은 영수증에서 구매한 항목의 수입니다.

주어진다

~ 후에 행에 있는 각 항목의 가격 그리고 세다 그들 사이에 공백이 주어집니다.

인쇄

구매한 상품의 가격과 개수로 계산한 총액이 영수증에 기재된 총액과 일치하는 경우 일치하지 않으면 출력 아니요출력

한계

I/O 예시



내 솔루션

BufferedReader를 이용하여 라인을 입력값으로 받아 정수형으로 변환하여 sum_price에 저장한다.

영수증에 적힌 총액입니다.

한 줄을 더 가져 와서 정수로 변환하고 구입한 품목의 수인 num에 저장합니다.

num까지 반복되는 for 루프를 사용합니다.

StringTokenizer를 사용하여 가격과 항목 수를 수신하고 문자열로 분할하고 정수로 변환하고 두 변수 각각에 저장합니다.

sum_price에서 두 변수의 값을 곱하고 뺍니다.

이 과정이 끝나면 if문을 이용하여 sum_price와 0을 비교하여 같으면 “Yes”, 아니면 “No”를 출력한다.

암호

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {
   
   public static void main(String() args) throws IOException {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
      
      int sum_price = Integer.parseInt( br.readLine() );
      int num = Integer.parseInt( br.readLine() );
      
      for(int i = 0; i < num; i++) {
    	  StringTokenizer st = new StringTokenizer(br.readLine());
    	  int price = Integer.parseInt(st.nextToken());
    	  int p_num = Integer.parseInt(st.nextToken());
    	  
    	  sum_price -= price * p_num ;
      }
      
      if ( sum_price == 0 ) {
    	  bw.write( "Yes\n" );
      } else {
    	  bw.write( "No\n" );
      }
      
      bw.flush();
      bw.close();
      br.close();
   }   
}