[백준] 책 정리 (1434)(kotlin)

문제 설명

백준 1434번 문제 링크

입력 및 출력

» 입력

첫째 줄에 박스의 개수 N, 책의 개수 M이 주어진다. 둘째 줄에는 박스의 용량 A1, A2, …, AN이 주어지고, 셋째 줄에는 B1, B2, …, BM이 주어진다.

» 출력

첫째 줄에 전체 박스의 낭비된 용량의 합을 출력한다.

제한 사항

1 ≤ N, M ≤ 50 1 ≤ Ai, Bj ≤ 1,000 문제에 주어진 방법으로 모든 책을 박스에 넣을 수 있는 경우만 입력으로 주어진다.

예제 입출력(테스트케이스)

입력 출력
3 3
5 5 5
5 5 5
0
3 3
5 6 7
5 5 5
3
3 1
2 3 5
3
7
4 5
3 4 5 6
3 3 3 3 3
3

문제 풀이1

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

fun main(args: Array<String>) = with(BufferedReader(InputStreamReader(System.`in`))) {
    val nm = readLine()
    val box = readLine().split(" ").map { it.toInt() }.toMutableList()
    val book = readLine().split(" ").map { it.toInt() }

    for (i in book.indices) for (j in box.indices) {
        if (box[j] >= book[i]) {
            box[j] -= book[i]
            break
        }
    }

    println(box.sum())
}

문제 풀이2

import java.util.Scanner

fun main(args: Array<String>) = with(Scanner(System.`in`)) {
    val N = nextInt()
    val M = nextInt()
    val box = MutableList(N) { nextInt() }
    val book = IntArray(M) { nextInt() }

    for (i in book.indices) for (j in box.indices) {
        if (box[j] >= book[i]) {
            box[j] -= book[i]
            break
        }
    }

    println(box.sum())
}