[Rust로 백준 하루 하나] 3-4. 영수증

김진산·2024년 8월 4일

Rust로 백준 하루 하나

목록 보기
24/138
post-thumbnail

문제 (25304번)

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

영수증에 적힌,

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

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

입력

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

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

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

출력

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

제한

  • 1X10000000001 ≤ X ≤ 1\,000\,000\,000
  • 1N1001 ≤ N ≤ 100
  • 1a10000001 ≤ a ≤ 1\,000\,000
  • 1b101 ≤ b ≤ 10

풀이

코드

use std::io;

fn main() {
    let mut total = String::new();
    let mut num = String::new();
    io::stdin().read_line(&mut total).unwrap();
    io::stdin().read_line(&mut num).unwrap();
    
    let total: u128 = total.trim().parse().unwrap();
    let num: u32 = num.trim().parse().unwrap();
    
    let mut sum: u128 = 0;
    
    for _ in 1..=num {
        let mut input = String::new();
        io::stdin().read_line(&mut input).unwrap();
        
        let input: Vec<&str> = input.split_whitespace().collect();
        let a: u128 = input[0].trim().parse().unwrap();
        let b: u128 = input[1].trim().parse().unwrap();
        
        sum += a*b
    }
    
    if sum == total { println!("Yes") }
    else { println!("No") }
}

해설

특이사항 없음


추가 학습

  • 특이사항 없음
profile
블록체인 개발자

0개의 댓글