문제 정보
제목 : 영수증
숫자 : 25304호
사용 언어: 자바
문제 링크
https://www.acmicpc.net/problem/25304
시간 제한 | 메모리 제한 |
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();
}
}