영수증(25304)

점이 어느 사분면에 있는지 알아내는 문제

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

문제

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

영수증에 적힌,

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

입력

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

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

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

출력

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

그렇게 어려운 문제는 아닌데 BufferedReader을 사용하던 기억을 되집어서 사용했다 java.io.* 을 통해서 커버하고, readLine()은 항상 IOException을 던진다는 것을 기억하자 그리고 한줄에 여러개 받은거는 StringTokenizer을 통해서 파싱하고 항상 화이팅해서 풀자

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 cnt = Integer.parseInt(br.readLine());
        int compare = 0;
        for (int i = 0; i < cnt; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            compare += (Integer.parseInt(st.nextToken()) * Integer.parseInt(st.nextToken()));
        }
        String str = total == compare ? "Yes" : "No";
        System.out.println(str);
    }
}

Last updated

Was this helpful?