문제
준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다.
영수증에 적힌,
- 구매한 각 물건의 가격과 개수
- 구매한 물건들의 총 금액
을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자.
입력
첫째 줄에는 영수증에 적힌 총 금액 X가 주어진다.
둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 N이 주어진다.
이후 N개의 줄에는 각 물건의 가격 a와 개수 b가 공백을 사이에 두고 주어진다.
출력
구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes를 출력한다. 일치하지 않는다면 No를 출력한다.
예제입력 | 예제출력 |
260000 4 20000 5 30000 2 10000 6 5000 8 |
Yes |
250000 4 20000 5 30000 2 10000 6 5000 8 |
No |
⭕ 풀이
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int total = Integer.parseInt(br.readLine());
int tc = Integer.parseInt(br.readLine());
StringTokenizer st;
int sum=0;
for(int i=0;i<tc;i++){
st = new StringTokenizer(br.readLine());
int price = Integer.parseInt(st.nextToken());
int cnt = Integer.parseInt(st.nextToken());
sum += price*cnt;
}
br.close();
System.out.println(total==sum?"Yes":"No");
}
}
✅ 일반적으로 반복문으로 총 누적합을 더한 뒤 비교하는 코드이다.
영수증 맨위에있는 물품의 총 금액을 total 변수와 물품 종류의 수를 즉, 테스트케이스를 tc 변수에 담아둔다.
이후 반복문안에서 한줄씩 StringTokenizer로 분리한뒤 정수형으로 형변환을 해
마지막에 total과 비교할 가격과 갯수의 곱을 받아둘 sum에 누적하여 더한다.
이후 모든 반복이 끝난 뒤 total과 sum을 비교해 Yes 혹은 No를 출력한다.
-출처
https://www.acmicpc.net/problem/25304
'Algorithm > Baekjoon(Java)' 카테고리의 다른 글
[백준/JAVA] 3003 : 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2022.08.18 |
---|---|
[백준/JAVA] 2447 : 별 찍기 - 10 ( 재귀 ) (0) | 2022.08.17 |
[백준/JAVA] 17478 : 재귀함수가 뭔가요? ( 재귀 ) (0) | 2022.08.15 |
[백준/JAVA] 10870 : 피보나치 수 5 ( 재귀 ) (0) | 2022.08.14 |
[백준/JAVA] 10872 : 팩토리얼 ( 재귀 ) (0) | 2022.08.13 |