[백준] 사나운 개 (2991)(kotlin)

문제 설명

백준 2991번 문제 링크

입력 및 출력

» 입력

  • 첫째 줄에 A, B, C, D가 주어진다. 둘째 줄에는 P, M, N가 주어진다. P는 우체부의 도착 시간, M은 우유배달원의 도착 시간, N은 신문배달원의 도착 시간이다. 매일 아침이 시작하는 시간을 0이라고 한다. 도착 시간은 아침이 시작한 후 지난 시간이다. 예를 들어, P가 3이면, 우체부는 아침이 시작하고 세 번째 분이 진행되는 중에 도착했다는 뜻이다. 모든 수는 1보다 크거나 같고, 999보다 작거나 같은 정수이다.

» 출력

첫째 줄에는 우체부, 둘째 줄에는 우유배달원, 셋째 줄에는 신문배달원이 개 몇 마리에게 공격 받는지 출력한다.

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

입력 출력
2 2 3 3
1 3 4
2
1
0

문제 풀이1

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

fun main(args: Array<String>) = with(BufferedReader(InputStreamReader(System.`in`))) {
    val abcd = readLine().split(" ").map { it.toInt() }
    val ab = abcd[0] + abcd[1]
    val cd = abcd[2] + abcd[3]
    val pmn = readLine().split(" ").map { it.toInt() }

    pmn.forEach {
        var attack = 0

        if (ab < it) {
            if (it % ab <= abcd[0]) attack += 1
        } else {
            if (it <= abcd[0]) attack += 1
        }

        if (cd < it) {
            if (it % cd <= abcd[2]) attack += 1
        } else {
            if (it <= abcd[2]) attack += 1
        }

        println(attack)
    }
}