본문 바로가기

백준

[백준] [코틀린 Kotlin] 25304번_영수증

문제 링크

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

 

25304번: 영수증

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

www.acmicpc.net

 

 

백준 25304번 영수증 (Kotlin)

 

 

문제

 

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

영수증에 적힌,

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

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

 

입력

 

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

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

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

 

출력

 

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

 

제한

 

 

 

예제 입력 1 

 

260000
4
20000 5
30000 2
10000 6
5000 8

 

예제 출력 1

 

Yes

 

영수증에 적힌 구매할 물건들의 목록으로 계산한 총 금액은 20000 × 5 + 30000 × 2 + 10000 × 6 + 5000 × 8 = 260000원이다. 이는 영수증에 적힌 총 금액인 260000원과 일치한다. 

 

 

 

 

풀이

 

코드

 

메모리 15208KB

시간 132ms

코드 길이 382B

 

import java.io.BufferedReader
import java.io.InputStreamReader

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    val x = readLine().toInt()
    val n = readLine().toInt()
    var sum = 0

    for (i in 1..n) {
        val (a:Int, b:Int) = readLine().split(" ").map { it.toInt() }
        sum += a*b
    }

    if (x == sum) print("Yes")
    else print("No")
}

 

내 풀이

 

영수증에 적힌 총 금액 x와 구매한 물건의 종류 수 n을 입력받고

for문 안에서 1부터 n까지 반복하여 각 물건의 가격 a와 물건의 갯수 b를 입력받는다

그리고 물건의 가격 a와 갯수 b를 곱하여 sum에 더하여 저장한 후

for문이 끝난 후 sum과 영수증에 적힌 총 금액인 x를 비교하여 같으면 Yes, 다르면 No를 출력해준다