본문 바로가기

알고리즘(w.KOTLIN)/그리디(Greedy)

[백준][코틀린][2875] 대회 or 인턴

728x90

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

 

2875번: 대회 or 인턴

첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N),

www.acmicpc.net

문제 풀이

1. 여학생 2명과 남학생 1명이 한팀이 된다. 그리고 K명이 인턴쉽에 참가하고 팀이 될 수 없으므로 이를 이용하여 다음과 같은 식을 구한다.

(women + men >= 3 + K)

2. 남은 여학생이 팀이 구성될려면 최소 2명이상 있어야 하고 남학생은 최소 1명이상 있어야 한다.

3. while 문을 반복하여 count 값을 증가 시킨다.

4. count 값을 출력한다.

코드

import java.io.*

fun main(args: Array<String>) {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val (N, M, K) = br.readLine().split(" ").map { it.toInt() }

    var women = N
    var men = M
    var count = 0

    while (women >= 2 && men >= 1 && women + men >= 3 + K) {
        women -= 2
        men -= 1
        count++
    }

    println(count)
}
728x90